常见数据结构简要介绍

一、数组

二、字符串

三、链表

struct ListNode

{

    int                m_nValue;

    ListNode*    m_pNext;

}

    链表结构当中,每个对象都包含了下一个链表成员对象的地址,因此可以通过地址偏移遍历链表内的所有内容,或者通过嵌套来遍历所有链表成员。增加链表成员只需要为新节点分配内存,并且调整指针的指向使之加入链表。

四、树

struct BinaryTreeNide

{

    int                             m_nValue;

    BinaryTreeNode *       m_pLeft;

    BinaryTreeNode*        m_pRight;

}

前序遍历:1,2,4,5,3,6,7(从根节点触发,从左至右,读完一支再重头读第二支)

中序遍历:4,2,5,1,6,3,7(总是能把结点放在中间,节点左侧是左支,右侧是右支)

后序遍历:4,5,2,6,7,3,1(先读子节点,再读根节点)

常见考点:重建二叉树,二叉树的下一个节点(有右子树则右子树的最左子节点;否则若该节点为父节点的左子节点,则下一个节点就是父节点;若为父节点的右子节点,则往回找直至找到一个节点,这个节点是是其父节点的左子节点,则该节点的父节点就是下一个节点)

五、栈和队列

栈:先进后出

队列:先进先出

例题:用两个栈实现队列

    解答:stack1和stack2分别建立,当数据传入时,先压入stack1,传输结束时,将stack1中的数据逐个弹出至stack2,接下来如果进行读取或输入操作,先判断stack2是否为空,若为不空,则从stack2弹出数据或存入stack1而不弹入stack2;若为空,则stack1中的数据弹入stack2,再对stack2进行队列操作。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1 序 2016年6月25日夜,帝都,天下着大雨,拖着行李箱和同学在校门口照了最后一张合照,搬离寝室打车去了提前租...
    RichardJieChen阅读 5,173评论 0 12
  • 1. 链表 链表是最基本的数据结构,面试官也常常用链表来考察面试者的基本能力,而且链表相关的操作相对而言比较简单,...
    Mr希灵阅读 1,472评论 0 20
  • 第一章 绪论 什么是数据结构? 数据结构的定义:数据结构是相互之间存在一种或多种特定关系的数据元素的集合。 第二章...
    SeanCheney阅读 5,828评论 0 19
  • 基于树实现的数据结构,具有两个核心特征: 逻辑结构:数据元素之间具有层次关系; 数据运算:操作方法具有Log级的平...
    yhthu阅读 4,322评论 1 5
  • 因交易的需求而产生货币。最初的货币只是以一种通用物品作为媒介,如粮食,布匹等。这应该是从原始的以货易货演变而来。但...
    流浪的失语者阅读 395评论 0 1