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

算法导论 基本数据结构

作者: 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

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

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

相关文章

  • 数据结构与算法参考书籍

    数据结构与算法分析 算法 算法导论 java编程思想

  • 算法导论笔记

    读算法导论 记录一下读算法导论的过程 1.算法 如果问我什么是算法(思考中) 利用数据结构,考虑时间以及空间效率,...

  • 好书一起读(85):算法笔记

    这阵子看了两本算法书,《算法》和《算法导论》。 前一本读着很轻松,内容基本与大学数据结构课程重叠,示例代码用jav...

  • 算法与数据结构

    数据结构 数据结构与算法分析_Java语言描述(第2版) 算法 计算机算法基础算法导论编程之法_面试和算法心得 c...

  • #算法与数据结构书籍

    数据结构 数据结构与算法分析_Java语言描述(第2版) 算法 计算机算法基础算法导论编程之法_面试和算法心得 c...

  • 长期计划安排

    一、数据结构与算法分析 参考书 数据结构与算法分析:C语言描述 算法(第四版) 算法导论 课程相关 MOOC 邓俊...

  • 数据结构和算法汇总

    数据结构和算法以weiss的数据结构和算法,以及算法导论为纲,另外参考July和左程云的书籍和代码。https:/...

  • 算法导论 基本数据结构

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

  • Java技术书单

    算法/数据结构1.《算法(第4版)》2.《算法导论》3.《算法图解》 Java虚拟机《深入理解Java虚拟机》 并...

  • 算法导论基本数据结构总结

    基本数据结构 这一章的内容基本都是之前了解的数据结构,有新意的是本章中对基本数据结构的实现方法。书中的一个基本假设...

网友评论

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

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