数据结构与算法(白色背景).pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
7.4.2 队列 定 义 队列(Queue)是一种只允许在一端进行插入,而在另一端进行删除的线性表,它也是一种操作受限的线性表。 队列在生活中的例子 举例1 到医院看病,首先需要到挂号处挂号,然后,按号码顺序救诊。 举例2 乘坐公共汽车,应该在车站排队,车来后,按顺序上车 举例3 在Windows这类多任务的操作系统环境中,每个应用程序响应一系列的消息,像用户点击鼠标;拖动窗口这些操作都会导致向应用程序发送消息。为此,系统将为每个应用程序创建一个队列,用来存放发送给该应用程序的所有消息,应用程序的处理过程就是不断地从队列中读取消息,并依次给予响应。 7.4.2 队列 (1)允许删除的一端称为队头(Front)。 (2)允许插入的一端称为队尾(Rear)。 (3)当队列中没有元素时称为空队列。 (4)队列亦称作先进先出(First In First Out)的线性表,简称为FIFO表。 (5)队列的修改是依先进先出的原则进行的。 新来的成员总是加入队尾(即不允许加塞),每次离开的成员总是队列头上的(不允许中途离队),即当前最老的成员离队。 顺序队列 7.5 线性表的链式存储结构 链接方式存储的线性表简称为链表(Linked List) 链式存储方法 ① 用一组任意的存储单元来存放线性表的结点 (这组存储单元既可以是连续的,也可以是不连续的) ② 链表中结点的逻辑次序和物理次序不一定相同。 为了能正确表示结点间的逻辑关系,在存储每个结点值的同时,还必须存储指示其后继结点的地址(或位置)信息(称为指针(pointer)) 不仅可用来表示线性表,而且可用来表示各种非线性的数据结构。 7.5.1 线性单链表 线性链表是线性表的链式存储结构,是一种物理存储单元上非连续、非顺序的存储结构。 数据元素的逻辑顺序是通过链表中的指针链接次序实现的。 将每一个存储结点分为两部分:一部分用于存储数据元素的值,称为数据域;另一部分用于存放下一个数据元素的存储结点的地址,即指向后继结点,称为指针域。 7.5.1 线性单链表 (1)空线性链表 (2)非空线性链表 指针域为空 对于链表的各种操作必须从头指针开始 7.5.2 循环链表 循环链表是将单链表的表中最后一个结点指针指向链表的表头结点,整个链表形成一个环,这样从表中任一结点出发都可找到表中其他的结点。 (1)带头结点的循环单链表的空表形式 (2)带头结点的循环单链表的一般形式 7.5.3 双向链表 在双向链表中,每一个结点除了数据域外,还包含两个指针域,一个指针(prior)指向该结点的后继结点,另一个指针(next)指向它的前驱结点。 双向链表也可以有循环表。让表头结点的前驱指针指向链表的最后的一个结点,让最后一个结点的后继指针指向头结点。 (1)空双向链表 (2)非空双向循环链表 7.6 树 7.6.1 树的基本概念 7.6.2 二叉树 7.6.3 遍历二叉树 7.6.1 树的基本概念 树形结构是一类重要的非线性数据结构。 族谱和各种社会组织结构都可以用树形结构表示。 7.6.1 树的基本概念 1.定义 树是由n(n≥0)个结点组成的有限集合。 若n=0,称为空树; 若n0,则: (1)有一个特定的称为根(root)的结点。它只有直接后继,但没有直接前驱; (2)除根结点以外的其它结点可以划分为m(m≥0)个互不相交的有限集合T0,T1,…,Tm-1,每个集合Ti(i=0,1,…,m-1)又是一棵树,称为根的子树,每棵子树的根结点有且仅有一个直接前驱,但可以有0个或多个直接后继。 树的示意图 树的根结点为A,该树还可以分为三个互不相交子集T0,T1,T2 T0={B,E,F,J,K,L} T1={C,G} T2={D,H,I,M} T0子树 T1子树 T2子树 如T0可以分为: T00 , T01 T00= {E,J,K,L} T01= {F} 树的常用术语 1.结点 指树中的一个数据元素,包含数据项及若干指向其子树的分支,一般用一个字母表示。 2.结点的度 一个结点包含子树的数目,称为该结点的度。 3.树的度 树内各结点的度的最大值。 4.树叶(叶子) 度为0的结点,称为叶子结点或树叶,也叫终端结点。 5.分支结点 度不为0的结点,又称非终端结点。 6.孩子结点的子树的根称为该结点的孩子 树的常用术语 7.双亲 孩子结点的上层结点即为这些结点的双亲。 8.兄弟 同一双亲的孩子之间互为兄弟。 9.堂兄弟 其双亲在同一层的结点互为堂兄弟。 10.结点的祖先 从根到该结点所经分支上的所有结点。 11.结点的子孙 以某结点为根的子树中的任一结点都称为该结点的子孙。 树的常用术语 12.结点的层次

文档评论(0)

微微 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档