第6章树和二叉树ppt课件.ppt
《第6章树和二叉树ppt课件.ppt》由会员分享,可在线阅读,更多相关《第6章树和二叉树ppt课件.ppt(55页珍藏版)》请在三一办公上搜索。
1、,第6章 树和二叉树,一、树的定义和基本术语二、二叉树三、二叉树的遍历四、线索二叉树五、树和森林六、赫夫曼树及其应用,主要内容,一、树的定义和基本术语,1、树的定义(教材P118),树是n(n0)个结点的有限集合。n=0时称为空树。在任意一颗非空树中:(1)有且仅有一个特定的结点被称为根(Root)的结点;(2)当n1时,其余结点被分成m(m0)个互不相交的有限集T1,T2,.,Tm,其中每一集合本身又是一棵树,并且成为根的子树(SubTree)。,树的定义是一个递归,例如:,结点:,结点的度:,树的度:,叶子结点:,分支结点:,数据元素+若干指向子树的分支,分支的个数,树中所有结点的度的最大
2、值,度为零的结点,度大于零的结点,2、基本术语(教材P120),孩子:结点子树的根双亲结点、兄弟结点、堂兄弟祖先结点、子孙结点,结点的层次:,树的深度:,假设某结点在第L层,则其子树的根就在第L+1层,树中叶子结点所在的最大层次,任何一棵非空树是一个二元组 Tree = (root,F)其中:root 被称为根结点,F 被称为子树森林,森林:是m(m0)棵互不相交的树的集合,A,root,B,C,D,E,F,G,H,I,J,M,K,L,F,有序树、无序树:,如果将树中结点的各子树看成从左到右是有次序的(即不能互换),则称该树为有序树,否则称为无序树。,线性结构,树型结构,第一个数据元素 (无前
3、驱),根结点 (无前驱),最后一个数据元素 (无后继),多个叶子结点 (无后继),其它数据元素(一个前驱、 一个后继),其它数据元素(一个前驱、 多个后继),A,B,C,D,E,F,G,H,K,根结点,左子树,右子树,二、二叉树,1、二叉树的定义(教材P121),二叉树是另一种树形结构。它与树形结构的区别是: (1)每个结点最多有两棵子树; (2)子树有左右之分,二叉树是n(n0)个结点的有限集合。当n=0时,称为空二叉树;当n0时,有且仅有一个结点为二叉树的根,其余结点被分成两个互不相交的子集,一个作为左子集,另一个作为右子集,每个子集又是一个二叉树。,二叉树的五种基本形态:,N,空树,只含
4、根结点,N,N,N,L,R,R,右子树为空树,L,左子树为空树,左右子树均不为空树,2、特殊二叉树,(1)斜树 所有的结点都只有左子树的二叉树叫左斜树;所有的结点都只有右子树的二叉树叫右斜树。这两者统称为斜树。,(2)满二叉树(教材P124) 在一颗二叉树中,如果所有分支都存在左子树和右子树,并且所有叶子都在同一层上,这样的二叉树成为满二叉树。,(3)完全二叉树 (教材P124) 树中所含的 n 个结点和满二叉树中编号为 1 至 n 的结点一一对应。,性质 1:在二叉树的第 i 层上至多有2i-1 个结点。(i1),3、二叉树的性质 (重点内容,教材P123-124),性质 2 :深度为 k
5、的二叉树上至多含 2k-1 个结点(k1)。,注意:性质1、2的区别例如,高度为4的二叉树,第4层的最大结点数为 ,总结点数最多为 。,8,15,性质 3 :对任何一棵二叉树,若它含有n0 个叶子结点、n2 个度为 2 的结点,则必存在关系式:n0 = n2+1。,性质 4 :具有 n 个结点的完全二叉树的深度为 log2n +1 。,性质 5 :,若对含 n 个结点的完全二叉树从上到下且从左至右进行 1 至 n 的编号,则对完全二叉树中任意一个编号为 i 的结点:(1) 若 i=1,则该结点是二叉树的根,无双亲,否则,编号为 i/2 的结点为其双亲结点;,(2) 若 2in,则该结点无左孩子
6、,否则,编号为 2i 的结点为其左孩子结点;,(3) 若 2i+1n,则该结点无右孩子结点,否则,编号为2i+1 的结点为其右孩子结点。,(1) 顺序存储结构,4、二叉树的存储结构,用一组连续的存储单元按照完全二叉树的每个结点编号的顺序存放结点内容。,例如:,A,B,C,D,E,F,A B D C E F,0 1 2 3 4 5 6 7 8 9 10 11 12 13,1,4,0,13,2,6,A,D,E,B,C,F,root,lchild data rchild,结点结构:,-二叉链表,(2)二叉树的链式存储表示,typedef struct BiTNode / 结点结构 TElemType
7、 data; struct BiTNode *lchild, *rchild; / 左右孩子指针 BiTNode, *BiTree;,lchild data rchild,结点结构:,C 语言的类型描述如下:(教材P127),A,D,E,B,C,F,root,-三叉链表,parent lchild data rchild,结点结构:,typedef struct TriTNode / 结点结构 TElemType data; struct TriTNode *lchild, *rchild; / 左右孩子指针 struct TriTNode *parent; /双亲指针 TriTNode, *
8、TriTree;,parent lchild data rchild,结点结构:,C 语言的类型描述如下:,三、二叉树的遍历,所谓遍历二叉树就是按某种顺序访问二叉树中的每个结点一次且仅一次的过程。这里的访问可以是输出、比较、更新、查看元素内容等等各种操作。,1、按层次遍历二叉树 实现方法为从上层到下层,每层中从左侧到右侧依次访问每个结点。,按层次遍历该二叉树的序列为:,K,A,B,E,C,F,D,G,H,2、按根、左子树和右子树三个部分进行遍历 二叉树的遍历方式存在六种可能: DLR(根左右)、LDR(左根右)、LRD(左右根) DRL(根右左)、RDL(右根左)、RLD(右左根),如果限定先
9、左后右,则只有前三种方式,即DLR(称为先序遍历)、LDR(称为中序遍历)和LRD(称为后序遍历)。,A,B,C,D,E,F,G,D L R,T,D L R,D L R,A,B,E,D L R,D L R,DLR,DLR,C,F,D,G,先序遍历结果:,A,B,C,D,E,F,G,T,(1)DLR先序遍历,A,B,C,D,E,F,G,L D R,T,L D R,L D R,A,B,E,L D R,L D R,LDR,LDR,C,F,D,G,中序遍历结果:,B,D,C,A,G,F,E,T,(2)LDR中序遍历,(3)LRD后序遍历,后序遍历结果:,DCBGFEA,练习:分别写出先序、中序、后序遍
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 二叉 ppt 课件
链接地址:https://www.31ppt.com/p-1428769.html