第4 章数据结构.ppt
《第4 章数据结构.ppt》由会员分享,可在线阅读,更多相关《第4 章数据结构.ppt(30页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第 4 章章 数据结构数据结构 4.1 基本数据结构与算法基本数据结构与算法 4.2 线性表线性表 4.3 栈和队列栈和队列4.4 树和二叉树树和二叉树 4.5 查找查找4.6 内部排序内部排序ABCDEFG姓名姓名 学号学号 成绩成绩 班级班级 李红李红 9761059 95 机机97.6 1065865 A C G T2D H I T3J M B E L KT1 F 树树型型结结构构是是一一类类重重要要的的非非线线性性数数据据结结构构,元元素素结结点点间间存存在在明明显显的的分分支支和和层层次次关关系系。现现实实世世界界中中,能能用用树树的的结结构构表表示示的的例例子子:学校的行政关系、
2、书的层次结构、人类的家族血缘关系等。学校的行政关系、书的层次结构、人类的家族血缘关系等。4.4 树与二叉树树与二叉树4.4.1 树的定义和基本术语树的定义和基本术语 1.1.树的定义树的定义概念:概念:树是树是n(n0)个结点构成的有限集合。个结点构成的有限集合。n=0为空为空树;树;n0时时,树中结点应该满足两个条件,树中结点应该满足两个条件(1)有且仅有一个特定的根的结点。)有且仅有一个特定的根的结点。(2)其余的)其余的n-1个结点个结点可划分为可划分为m(m0)个互不相交的有限集)个互不相交的有限集T1,T2,Tm,其中,其中Ti又是一棵树,称为又是一棵树,称为根的子树。根的子树。示意
3、图:示意图:T1B,E,F,J,KT2C,GT3D,H,I,L4.4 树与二叉树树与二叉树4.4.1 树的定义和基本术语树的定义和基本术语 T1T2T31.1.树的定义树的定义4.4 树与二叉树树与二叉树4.4.1 树的定义和基本术语树的定义和基本术语 2.2.树的基本概念树的基本概念(相关术语相关术语)1 1)根结点)根结点:没有前驱的结点只有一个没有前驱的结点只有一个,称为根结点。称为根结点。2 2)双亲(父)结点)双亲(父)结点:树中每个结点只有一个直接前驱树中每个结点只有一个直接前驱,称为该结称为该结 点的双亲结点或父结点。点的双亲结点或父结点。3 3)孩子()孩子(子子)结结点点:一
4、个一个结结点的子树的根或者后继结点数称为点的子树的根或者后继结点数称为该节点的孩子该节点的孩子结结点或子点或子结结点。点。4 4)叶子结点)叶子结点(终端结点终端结点):):没有子结点没有子结点(后继后继)的结点。的结点。ABCDEFGHIJKL1.1.树的定义树的定义4.4 树与二叉树树与二叉树4.4.1 树的定义和基本术语树的定义和基本术语 2.2.树的基本概念树的基本概念(相关术语相关术语)A:是根是根结结点点,同时是同时是B B、C C、D D结结点的父点的父结结点或双亲点或双亲结结点点B:是是E E、F F的父结点,的父结点,E E、F F是是B B的子的子结结点或孩子点或孩子结结点
5、点J、K、L、F、G、I:是叶是叶子节点子节点1.1.树的定义树的定义4.4 树与二叉树树与二叉树4.4.1 树的定义和基本术语树的定义和基本术语 2.2.树的基本概念树的基本概念(相关术语相关术语)5)兄弟:)兄弟:同一个双亲同一个双亲的孩子结点之间互称兄弟。的孩子结点之间互称兄弟。6)堂兄弟:)堂兄弟:其其双亲在同一层双亲在同一层的结点互为堂兄弟。的结点互为堂兄弟。7)结点的祖先:)结点的祖先:结点的祖先是从结点的祖先是从根到该结点所经分支的根到该结点所经分支的所有结点。所有结点。8)结点的子孙:)结点的子孙:以某结点为根的子树中的任一结点都称以某结点为根的子树中的任一结点都称为该结点的子
6、孙。为该结点的子孙。1.1.树的定义树的定义4.4 树与二叉树树与二叉树4.4.1 树的定义和基本术语树的定义和基本术语 2.2.树的基本概念树的基本概念(相关术语相关术语)ABCDEFGHIJKLB的子孙为的子孙为E、F、J、K。G与与E、F、H、I互为互为堂堂兄弟结点兄弟结点L的祖先为的祖先为A、D、H。B,C,D互为互为兄弟兄弟1.1.树的定义树的定义4.4 树与二叉树树与二叉树4.4.1 树的定义和基本术语树的定义和基本术语 2.2.树的基本概念树的基本概念(相关术语相关术语)9)9)结点的层次:结点的层次:从根开始定义起,根为第一层,根的孩子从根开始定义起,根为第一层,根的孩子为第二
7、层。若某结点在第为第二层。若某结点在第k k层,则其子树的根就在第层,则其子树的根就在第k+1k+1层。层。10)结点的度结点的度:一个结点的子树的个数一个结点的子树的个数(拥有拥有后继的个数后继的个数)。11)树的度树的度:所有所有结点度的最大值结点度的最大值。12)树的深度或高度:)树的深度或高度:树中结点的树中结点的最大层次最大层次称为树的深度称为树的深度。1.1.树的定义树的定义4.4 树与二叉树树与二叉树4.4.1 树的定义和基本术语树的定义和基本术语 2.2.树的基本概念树的基本概念(相关术语相关术语)ABCDEFGHIJKL结点结点A的层次:的层次:1结点结点L的层次:的层次:4
8、结点的度结点的度:A的度为的度为3;C的度为的度为1 F的度为的度为0 树的度:树的度:3树的深度:树的深度:4注意注意:一棵树中一棵树中,每个结点的度数之和每个结点的度数之和=结点总数结点总数-1-1=树中树中边的条数边的条数1.1.树的定义树的定义4.4 树与二叉树树与二叉树4.4.1 树的定义和基本术语树的定义和基本术语 2.2.树的基本概念树的基本概念(相关术语相关术语)13)有序树:)有序树:如果将树中结点的各子树看成从左至如果将树中结点的各子树看成从左至右是有次序的(即不能互换),则称该树为有序树。右是有次序的(即不能互换),则称该树为有序树。否则为无序树。在有序树的最左边的根称为
9、第一个否则为无序树。在有序树的最左边的根称为第一个孩子,最右边的称为最后一个孩子。孩子,最右边的称为最后一个孩子。14)森林:)森林:是是m m(m0m0)棵互不相交的树的集合。对)棵互不相交的树的集合。对树中根结点而言,其子树的集合即为森林。由此,树中根结点而言,其子树的集合即为森林。由此,可用森林和树相互递归的定义来描述树。可用森林和树相互递归的定义来描述树。因因为为树树的的每每个个结结点点的的度度不不同同,存存储储困困难难,使使对对树的处理算法很复杂,所以引出二叉树的讨论。树的处理算法很复杂,所以引出二叉树的讨论。1.1.二叉树的定义二叉树的定义4.4 树与二叉树树与二叉树4.4.2 二
10、叉树二叉树v定定义义:二二叉叉树树是是n(nn(n 0)0)个个结结点点的的有有限限集集,它它或或为为空空树树(n=0)n=0),或或由由一一个个根根结结点点和和两两棵棵分分别别称称为为左左子子树树和和右右子子树树的互不相交的二叉树构成。的互不相交的二叉树构成。v特特点点:每每个个结结点点至至多多有有二二棵棵子子树树(即即不不存存在在度度大大于于2 2的的结结点点)二叉树的子树有左、右之分,且其次序不能任意颠倒二叉树的子树有左、右之分,且其次序不能任意颠倒v二叉树的五种基本形态二叉树的五种基本形态 空空二叉树二叉树 仅有仅有根结点根结点 右子树右子树为空为空 左子树左子树为空为空左右子树左右子
11、树均非空均非空1.1.二叉树的定义二叉树的定义性质性质1:二叉树的第二叉树的第i层上至多有层上至多有2 i-1(i 1)个结点。个结点。证明:证明:根据二叉树的特点,结论是显然的。(用归纳法根据二叉树的特点,结论是显然的。(用归纳法证明)证明)。性质性质2:深度为深度为k k的二叉树中至多的二叉树中至多2 2k k-1-1个结点。个结点。证明:证明:深度为深度为k k的二叉树最多有的二叉树最多有k k层,根据性质层,根据性质1 1,只要,只要将第将第1 1层到第层到第k k层的最大结点数相加,就可得到整个二叉层的最大结点数相加,就可得到整个二叉树中结点的最大值。树中结点的最大值。21-1+2
12、2-1+2 k-1=2 k-1(k 1)4.4 树与二叉树树与二叉树4.4.2 二叉树二叉树2.2.二叉树的性质二叉树的性质4231567891011121314151.1.二叉树的定义二叉树的定义4.4 树与二叉树树与二叉树4.4.2 二叉树二叉树2.2.二叉树的性质二叉树的性质性质性质3:对任何一棵二叉树对任何一棵二叉树T T,如果其终端结点数为,如果其终端结点数为n n0 0,度,度为为2 2的结点数为的结点数为n n2 2,则,则n n0 0n n2 21 1。ABCDEF证明:证明:(2)(2)进入分支总数进入分支总数m(m(每个结点唯一分支进入每个结点唯一分支进入)n=m+1(1)
13、(1)结点总数结点总数 n=n0+n1+n2 (n1是度为是度为1的结点数的结点数)(3)m(3)m个分支是由非叶子结点射出个分支是由非叶子结点射出 m=n1+2n2最后得最后得:n0n21 叶子结点:叶子结点:n0=3 度为度为2的结点:的结点:n2=21.1.二叉树的定义二叉树的定义4.4 树与二叉树树与二叉树4.4.2 二叉树二叉树2.2.二叉树的性质二叉树的性质满二叉树满二叉树定定义义:如如果果一一个个二二叉叉树树深深度度为为K K,结结点点数数为为2 2k k-1-1,则则称称为为满满二叉树二叉树特点:特点:除最后一层外,每一层所有结点都有两个子结点除最后一层外,每一层所有结点都有两
14、个子结点。4231567891011 1213 14 15满二叉树满二叉树1.1.二叉树的定义二叉树的定义4.4 树与二叉树树与二叉树4.4.2 二叉树二叉树2.2.二叉树的性质二叉树的性质完全二叉树完全二叉树定义定义:指深度为指深度为k k的,有的,有n n个结点的,且每一个结点都与深个结点的,且每一个结点都与深度为度为k k的满二叉树中编号从的满二叉树中编号从1 1至至n n的结点的结点一一对应一一对应。特点特点:叶子结点只可能在最下面两层上叶子结点只可能在最下面两层上,且最下层叶子结点且最下层叶子结点集中在树的左部。任一结点集中在树的左部。任一结点,右分支下子孙结点最大层次右分支下子孙结
15、点最大层次为为h h,则左分支必为,则左分支必为h h或或h+1h+1。423156789104231567非完全二叉树非完全二叉树注意注意:满二叉树满二叉树必是完全二叉必是完全二叉树;而完全二树;而完全二叉树未必是满叉树未必是满二叉树。二叉树。1.1.二叉树的定义二叉树的定义4.4 树与二叉树树与二叉树4.4.2 二叉树二叉树2.2.二叉树的性质二叉树的性质性质性质4 4:具有具有n个结点的完全二叉树的深度个结点的完全二叉树的深度k为为log2n+1证明:证明:根据完全二叉树的定义和性质根据完全二叉树的定义和性质2可知,当一棵完全可知,当一棵完全二叉树的深度为二叉树的深度为k,结点个数为,结
16、点个数为n时,有时,有 2k-1-1n2k-1 即即2k-1n2k对不等式取对数,有对不等式取对数,有 k-1log2n 2 2k-1k-1-1=3-1=3个个4231567深度为深度为3 3的的完全二叉树完全二叉树结点结点数最多情况是数最多情况是2 2k k-1=-1=7 7个个1.1.二叉树的定义二叉树的定义4.4 树与二叉树树与二叉树4.4.2 二叉树二叉树2.2.二叉树的性质二叉树的性质性质性质5 5:具有具有n个结点的完全二叉树,从上至下和从左到右个结点的完全二叉树,从上至下和从左到右的顺序对所有结点从的顺序对所有结点从1开始顺序编号,则对任意结点开始顺序编号,则对任意结点i有有:1
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第4 章数据结构 数据结构
限制150内