美文网首页
常见数据结构简要介绍

常见数据结构简要介绍

作者: 先生Tank | 来源:发表于2018-03-29 17:19 被阅读0次

一、数组

二、字符串

三、链表

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进行队列操作。

相关文章

网友评论

      本文标题:常见数据结构简要介绍

      本文链接:https://www.haomeiwen.com/subject/byukfftx.html