[计算机软件及应用]数据结构——树形结构_1
7.1.1 树的定义 抽象数据类型树的定义 ADT Tree { 数据对象:D={ai|1≤ i≤ n,n≥ 0} 数据关系:R={ai,aj|每个元素仅有一个前驱,零或多个直接后继,仅有一个元素没有前驱} 基本运算: InitTree(t) ClearTree(t) Parent(t) //找直接前驱 Sons(t) //找直接后继 … } 7.1.3 树的基本术语 2. 分支结点与叶结点 度不为零的结点称为非终端结点,又叫分支结点 度为零的结点称为终端结点或叶结点 在分支结点中 每个结点的分支数就是该结点的度 度为1的结点,其分支数为1,称为单分支结点; 度为2的结点,其分支数为2,称为双分支结点 其余类推 7.1.4 树的性质 例7.2 若一棵三次树中度为3的结点为2个,度为2的结点为1个,度为1的结点为2个,则该树中总的结点个数和度为0的结点个数分别为多少? 解:设总结点数、度为0的结点数、度为1的结点数、度为2的结点数、度为3的结点数分别为:n,n0,n1,n2,n3 根据性质1:树中结点数等于所有结点度数和+1 0*n0+1*n1+2*n2+3*n3+1=n,即 n=0+1*2+2*1+3*2+1=11 又因为:n=n0+n1+n2+n3 所以n0=11-2-1-2=6 7.1.6 树的存储结构 例7.3 以孩子兄弟链的存储结构,编写一个求树高度的递归算法。 递归模型: 0 t=NULL F(t)= 1 t没有孩子 max(f(p))+1 其它 p为t的孩子 例7.3 Int TreeHeight(TSBNode *t) { TSBNode *p; Int m,max=0; If (t==NULL) return(0); Else if (t-vp==NULL) return(1); else { p=t-vp; //指向第1个孩子的结点 While(p!=Null) { m=TreeHeight(p); if (maxm) max=m; p=p-hp; //求其它兄弟的高度 } return(m+1); } } 例7.4 在一棵完全二叉树中,结点总数为n,则编号最大的分支结点的编号是多少? 解 由二叉树性质1:n0=n2+1 二叉树的所有度数=2n2+n1,因此有: N=n0+n1+n2=2n2+n1+1 所以:n2=(n-n1-1)/2 完全二叉树中,n1只能取0和1 当n1=0时,二叉树只有度为2的结点和叶结点,所以最大分支结点编号是n2,此时有: n2=(n-1)/2= n/2 当n1=1时,二叉树只有一个度为1的结点(该结点是最后一个分支结点),最大分支结点编号是n2+1=(n/2) 所以,编号最大的分支结点的编号是 n/2 7.2.3 二叉树与树、森林之间的转换 森林、树转换为二叉树 若T={T1,T2,…Tm}是m棵树的序列,则与T相对应的二叉树β(T)的构造: 如果m=0,则β(T)为空二叉树 如果m0,则β(T)的根结点为T1的根结点, β(T)根结点的左子树为β(T1.1,T1.2,…) T1.1,T1.2,…是T1的子树 β(T)根结点的右子树为β(T2,T3,… Tm) 上述方法为递归构造法,若T是有序树,则由T构造的β(T)唯一。 7.2.3 二叉树与树、森林之间的转换 β(T)的结点与原树T的结点关系为: β(T)中的任意结点K 若有左孩子,左孩子结点为K原来的最左边(第1棵)子树的根结点 若有右孩子,右孩子结点为K原来的右边相邻的第1个兄弟结点或右边第1棵相邻的树的根结点(当K为原森林中树的根结点时) 7.2.3 二叉树与树、森林之间的转换 二叉树还原为森林、树 若β(T)为空,则T为空 若β(T)非空,则 T中的第1棵树T1的根结点为β(T)的根结点 T1中根结点的子树序列{T1.1,T1.2,…}由β(T)左子树还原而成的森林 T中除T1外其余树组成的序列{T2,T3,… Tm}由β(T)的右子树还原而成的森林 孩子链存储结构的结点类型定义如下: typedef struct node { ElemType data; //
您可能关注的文档
最近下载
- SYT 5069-2017 石油天然气工业 钻井和采油设备 管柱类落物打捞工具.docx VIP
- WF-007A多功能自动氩弧填丝机使用说明书7.pdf VIP
- SYT 5496-2017 石油天然气工业 钻井和采油设备 震击器及加速器.pdf VIP
- 2025年烟花爆竹经营企业(包括批发和零售企业)安全检查表.pdf VIP
- 2025至2030药用真菌行业调研及市场前景预测评估报告.docx VIP
- SYT 5382-2009 钻井液固相含量测定仪.docx VIP
- 《消毒供应质量控制指标(2024年版)》.docx VIP
- 股市主力操盘盘 口摩斯密码(原创内容,侵权必究).pptx
- 2012下半年深圳市机关公开招考公务员职位表.doc VIP
- 国际期刊科技论文写作与发表.PDF VIP
原创力文档

文档评论(0)