- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据结构PPT第六章
第六章 树和二叉树 内容提要 树的有关定义 二叉树的基本概念 二叉树的遍历和线索二叉树 树的相关操作 赫夫曼树 树的定义 树是n(n0)个结点的有限集。 一棵树应满足以下条件: 有且仅有一个特定的成为根的结点。(无前驱) 当n1时,其余结点可分为m(m0)个互不相交的有限集T1,T2……Tm,其中每个集合本身又是一棵树。(子树) 树的链式存储结构(一) P135 双亲表示法:假设一组连续空间存储树的结点,同时在每个结点中附设一个指示器指示其双亲在链表中的位置。 树的链式存储结构(二) 孩子表示法:多重链表,每个指针指向一棵子树的根结点。P136 树的链式存储结构(三) 孩子兄弟表示法:二叉树表示法,链表中两个链域分别指向该结点的第一个孩子和下一个兄弟结点。(二叉树表示法) 二叉树的定义 P121 二叉树——每个结点至多有两棵子树(即二叉树中不存在度大于2的结点),且树有左右之分(有序),其次序不能任意颠倒 满二叉树:二叉树中每一层结点的个数达到最大。 不存在度为1的结点 结点的度除了2(枝结点)就是0(叶子) 叶子全部都在最下面的那一层 完全二叉树 深度为k的,有n个结点的二叉树,当且仅当每一个结点都与深度为k的满二叉树中编号从1到n的结点一一对应时,称之为完全二叉树。 完全二叉树满足以下条件: 叶子结点只有可能在层次最大的两层上出现; 任一结点,若其右子树的深度为i,则左子树的深度必为i或i+1 二叉树的性质(详见P123,留意证明过程) 性质1:在二叉树的第i层上至多有2i-1个结点(i=1)(满二叉树第i层就有2i-1个结点) 用归纳法可以证明 性质2:深度为k的二叉树至多有2k - 1个结点(k=1)(满二叉树为上界) 证明:根据性质1可得在第i层至多有2i-1个结点,则整个树的结点数最多可能有 20 + 21 + 22 + 23 +……+ 2k-1 = 2k - 1 性质3:对任意一棵二叉树,如果其终端结点(叶结点)数为n0,度为2的结点数为n2 ,则n0= n2 +1 证明过程参见书上 P124 完全二叉树性质:书P124性质4、性质5 二叉树的存储结构 顺序存储:用一组地址连续的存储单元依次自上而下、自左而右地存储二叉树。(空位也编号) 链式存储(P127) 二叉链表:三个域(数据域、左、右指针) 三叉链表:四个域(数据域、左、右指针、双亲指针) 二叉链表的生成算法 输入:每个结点的输入用 (a, b, S) 表示 ,按层输入,a是b的双亲,b是a的左/右儿子,S为’L’或’R’ 根结点(#, b, S) (S随取) 结束标记 (#, #, S) (S随取) 二叉链表生成算法 遍历二叉树 “遍历”的含义:按某种路径巡访树中每个结点,使得每个结点均被访问 一次且仅被访问一次 遍历实际上是将非线性结构的二叉树中的结点排列成一个线性序列的过程。在应用中可看做是一个查询的过程 遍历的递归深度恰好就是树的深度/高度 访问结点、左、右子树的顺序可以是: ① 中序遍历——左、根、右 ② 逆中序遍历——右、根、左 ③ 前/先序遍历——根、左、右 ④ 逆前/逆先序遍历——根、右、左 ⑤ 后序遍历——左、右、根 ⑥ 逆后序遍历——右、左、根 先序遍历(前序遍历)的递归定义 若二叉树为空,则不操作;否则 访问根结点; 先序遍历左子树; 先序遍历右子树。 算法P129 二叉树的每个结点都只进出栈一次,故时间复杂度为O(n) 堆栈空间的最小上限至少应该等于二叉树的高度h 从已知的各种结点序列,构造二叉树 从各种遍历序列得到以下特点: 在先序遍历序列中,第一个结点是根结点。 在中序遍历序列中,根结点在左右子树之间。 在后序遍历序列中,最后一个结点是根结点。 根据先序和中序序列可以确定原来二叉树的结构。(由先序知道根,由中序分出左右子树) 同理,根据后序和中序序列也可以还原一棵二叉树。 线索二叉树 一般的二叉链表只能找到左右孩子,找不到前驱、后继结点 线索二叉树充分利用了二叉链表中的空指针,对其进行调整,使得在遍历过程中能找到各个结点的前驱、后继结点。 若结点有左子树,则lchild指向其左孩子,否则指向其前驱; 若结点有右子树,则rchild指向其右孩子,否则指向其后继; 结点结构 P133 中序线索化的特征总结 所有叶子结点的右链都是线索 对二叉树进行线索化,实质就是遍历一棵二叉树,在遍历的过程中检查每个结点的左/右指针是否为空。如果为空,将空指针修改为指向其前驱或后继结点的线索。 结点的后继应该是遍历其右子树时访问的第一个结点,即右子树中最左下的结点。(在中序情况下) 如果左标志为1,则左链为线索,指示前驱,否则遍历左子树时最后访问的一个结点为前驱 线索二叉树中求前驱
您可能关注的文档
最近下载
- 酒店住宿水单模板.docx VIP
- YY/T 1757-2021医用冷冻保存箱.pdf
- 光伏AGC和AVC系统产品手册(国能日新).pdf VIP
- 英飞源 -ACDC -BEG1K0100用户手册A00 30K.pdf VIP
- TDACS 019-2024 荷斯坦后备牛培育技术规程.pdf VIP
- 北师大版二年级数学上册期末临考冲刺押题卷(四)(含答案).docx VIP
- 高考物理中的传送带模型和滑块-木板模型.doc VIP
- AMS 2750H -2024 高温测量(中文版).docx VIP
- T_DACS 020—2024(荷斯坦后备牛福利与健康要求).pdf VIP
- PM-2-04-20-01-10材料设备封样清单.docx VIP
文档评论(0)