第6章 树和二叉树.ppt
《第6章 树和二叉树.ppt》由会员分享,可在线阅读,更多相关《第6章 树和二叉树.ppt(99页珍藏版)》请在优知文库上搜索。
1、第第6章章 树和二树和二叉树叉树本章主要内容本章主要内容树结构广泛存在树结构广泛存在6.1 树的定义和基本术语树的定义和基本术语6.2 二叉树二叉树6.3 遍历二叉树和线索二叉树遍历二叉树和线索二叉树6.4 树和森林树和森林6.6 赫夫曼树及其应用赫夫曼树及其应用6.1 树的定义和基本术语树的定义和基本术语一、树的定义一、树的定义P118 树树(Tree)是是n(n=0)个结点的有限集,在任意一棵非空树中个结点的有限集,在任意一棵非空树中(1)有有且仅有一个特定的称为根(且仅有一个特定的称为根(Root)的结点;()的结点;(2)当)当n1时,其时,其余结点棵分为余结点棵分为m(m0)个互不相
2、交的有限集个互不相交的有限集T1,T2,Tm,其中每其中每一个集合本身又是一棵树,并且称为根的子树(一个集合本身又是一棵树,并且称为根的子树(SubTree)。)。基本术语基本术语P120二、树的表示法二、树的表示法P120三、树的逻辑结构:非线性结构三、树的逻辑结构:非线性结构-层次结构层次结构四、树的基本操作:初始化、建树、清空、求树的深度、找双亲、四、树的基本操作:初始化、建树、清空、求树的深度、找双亲、找孩子、插入、删除、遍历等找孩子、插入、删除、遍历等五、五、ADT示示张张1311张张1312张张2221张张2221张张2221张张111张张131张张132张张221张张222张张2
3、23张张331张张341张张11张张12张张13张张21张张22张张31张张32张张33张张34张张1张张2张张3张源张源族普族普-家族家族树树称为称为子树子树T1子树子树T2子树子树T3结点结点:结点的度结点的度:树的度树的度:叶子结点叶子结点:分支结点分支结点:数据元素数据元素+若干指向子树的分支若干指向子树的分支分支的个数分支的个数树中所有结点的度的最大值树中所有结点的度的最大值度为零的结点度为零的结点度大于零的结点度大于零的结点DHIJM(从根到结点的)路径路径:孩子孩子结点结点、双亲双亲结点结点、兄弟兄弟结点结点、堂兄弟堂兄弟祖先祖先结点结点、子孙子孙结点结点结点的层次结点的层次:树
4、的深度:树的深度:由从根根到该结点所经分支和结点构成ABCDEFGHIJMKL假设根结点的层次为1,第l 层的结点的子树根结点的层次为l+1树中叶子结点所在的最大层次任何一棵非空树是一个二元组 Tree=(root,F)其中:其中:root 被称为根结点,F 被称为子树森林森林:森林:是 m(m0)棵互不相交的树的集合ArootBEFKLCGDHIJMF (1)有确定的根有确定的根 (2)树根和子树根之间为有向关系树根和子树根之间为有向关系有向树有向树:有序树:有序树:子树之间存在确定的次序关系子树之间存在确定的次序关系。无序树:无序树:子树之间不存在确定的次序关系。子树之间不存在确定的次序关
5、系。对比对比树型结构树型结构和和线性结构线性结构的结构特点的结构特点线性结构线性结构树型结构树型结构第一个数据元素第一个数据元素(开始结点开始结点)(无前驱无前驱)根结点根结点 (无前驱无前驱)最后一个数据元素最后一个数据元素(终端结点终端结点)(无后继无后继)多个叶子结点多个叶子结点 (无后继无后继)其它数据元素其它数据元素(一个直接前驱、一个直接前驱、一个直接后继一个直接后继)其它数据元素其它数据元素(一个直接前驱、一个直接前驱、多个直接后继多个直接后继)树的表示法树的表示法1、树型图表示法树型图表示法:2、嵌套集合表示法:、嵌套集合表示法:3、凹入表表示法:、凹入表表示法:4、广义表表示
6、法广义表表示法:(A(B(E,F(K,L),C(G),D(H,I,J(M)T1T3T2树根广义表表示法广义表表示法数据对象数据对象 D:D是具有相同特性的数据元素的集合是具有相同特性的数据元素的集合。若若D为空集,则称为空树;为空集,则称为空树;否则否则:(1)在在D中存在唯一的称为根的数据元素中存在唯一的称为根的数据元素root,(2)当当n1时,其余结点可分为时,其余结点可分为m(m0)个互个互 不相交的有限集不相交的有限集T1,T2,Tm,其中每一其中每一 棵子集本身又是一棵符合本定义的树,棵子集本身又是一棵符合本定义的树,称为根称为根root的子树。的子树。数据关系数据关系 R:基本操
7、作:基本操作:查查 找找 类类 插插 入入 类类删删 除除 类类 Root(T)/求树的根结点求树的根结点 查找类:查找类:Value(T,cur_e)/求当前结点的元素值求当前结点的元素值 Parent(T,cur_e)/求当前结点的双亲结点求当前结点的双亲结点LeftChild(T,cur_e)/求当前结点的最左孩子求当前结点的最左孩子 RightSibling(T,cur_e)/求当前结点的右兄弟求当前结点的右兄弟TreeEmpty(T)/判定树是否为空树判定树是否为空树 TreeDepth(T)/求树的深度求树的深度TraverseTree(T,Visit()/遍历遍历InitTree
8、(&T)/初始化置空树初始化置空树 插入类:插入类:CreateTree(&T,definition)/按定义构造树按定义构造树Assign(T,cur_e,value)/给当前结点赋值给当前结点赋值InsertChild(&T,&p,i,c)/将以将以c为根的树插入为结点为根的树插入为结点p的第的第i棵子树棵子树 ClearTree(&T)/将树清空将树清空 删除类:删除类:DestroyTree(&T)/销毁树的结构销毁树的结构DeleteChild(&T,&p,i)/删除结点删除结点p的第的第i棵子树棵子树6.2 二叉树本节主要内容本节主要内容6.2.1 二叉树的定义二叉树的定义6.2.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第6章 树和二叉树 二叉
