美文网首页数据结构与算法
算法导论 基本数据结构

算法导论 基本数据结构

作者: Alex90 | 来源:发表于2018-01-10 09:30 被阅读0次

    MIT公开课没有讲到的内容,介绍几种基本数据结构
    - 栈和队列
    - 链表
    - 二叉树

    栈和队列

    栈和队列都是动态集合,元素的出入是规定好的。栈规定元素是先进后出(FILO),队列规定元素是先进先出(FIFO)

    栈的基本操作包括入栈push和出栈pop,栈有一个栈顶指针top,指向最新如栈的元素,入栈和出栈操作操作都是从栈顶端进行的

    栈操作

    队列的基本操作包括入队enqueue和出队dequeue,队列有队头head和队尾tail指针。元素总是从队头出,从队尾入。采用数组实现队列时候,为了合理利用空间,可以采用循环实现队列空间的有效利用。

    队列操作

    链表

    链表与数组的区别是链表中的元素顺序是有各对象中的指针决定的,相邻元素之间在物理内存上不一定相邻。采用链表可以灵活地表示动态集合。链表有单链表和双链表及循环链表。

    双链表L的每一个元素是一个对象,每个对象包含一个关键字和两个指针:next和prev。链表的操作包括插入一个节点、删除一个节点和查找一个节点


    双链表操作

    二叉树

    二叉树(Binary Tree)是一种特殊的树型结构,每个节点至多有两棵子树,且二叉树的子树有左右之分,次序不能颠倒

    二叉树

    二叉树的性质

    1. 在二叉树中的第i层上至多有2(i-1)个结点(i>=1)。备注:表示此方
    2. 深度为k的二叉树至多有2^k-1个节点(k>=1)。
    3. 对任何一棵二叉树T,如果其终端结点数目为n0,度为2的节点数目为n2,则n0=n2+1

    可以采用顺序存储数组和链式存储二叉链表两种方法来存储二叉树

    遍历二叉树
    先序遍历:先访问根节点,然后先根遍历左子树,最后先根遍历右子树
    中序遍历:先中根遍历左子树,然后访问根结点,最后中根遍历右子树
    后序遍历:先后根遍历左子树,然后后根遍历右子树,最后访问根结点

    相关文章

      网友评论

        本文标题:算法导论 基本数据结构

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