06-数据结构-树1.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第六章 树 第一节 树的定义 一、逻辑结构 树结构:层次关系、线性关系。 例1:资源管理器; 例2:个人照片管理; 树的逻辑结构图: 通俗定义: 树是n(n0)个结点的有限集,在任意一棵树中: 1)有且只有一个特定的根(root)结点; 2)当n1时,其余结点可分为m(m0)个互不相交的有限子集T1,T2...Tm,每个子集是一棵树,称为子树。 形式定义: Tree=(D,S,P) D={ai | ai∈ElemSet,i=1,2,...,n} 二元关系S: 当n=1时,S=φ; 当n1时: 1 根的特殊地位 唯一无前驱的元素:根结点; 2 结点的划分 可将D-{root}划分成m(m0)个互不相交的子集D1,D2,…Dm,对任意子集Di,唯一存在xi∈Di,有root,xi∈S; 3 关系的划分 对应D-{root}的划分,可将 S-{root,x1,…root,xm} 唯一划分成互不相交的子集S1,S2,...,Sm,对于任意i, Si是Di上的二元关系。(Di,Si)是一棵树,称为根root的子树。 示例: D={A,B,C,D,E,F,G,H,I,J,K} S={A,B,A,C,A,D, B,E,B,F,B,G, C,H, D,I,D,J } root: A D-{A}可分为: D1={B,E,F,G} D2={C,H} D3={D,I,J} S-{A,B,A,C,A,D}可分为: S1: {B,E,B,F,B,G} S2: {C,H} S3: {D,I,D,J} 二、术语 度 结点的度 结点拥有的子树数。 叶子结点 度为0的结点。 分支结点 度不为0的结点。 树的度 树内所有结点的度的最大值。 深度 结点深度 根结点的深度为1 若结点深度为i, 则子结点深度为i 双亲、祖先 孩子、子孙 兄弟(Sibling)、堂兄弟 扩展 有序树、无序树 左右结点是否等价 森林 m棵互不相交的树的集合。 m=0:空集; m=1:树 三、基本逻辑操作 Initiate(T) T树的初始化,包括建树 Root(T) 求T树的根 Depth(T) 求T树的深度 Parent(T,e) 求T树中e的双亲结点 Child(T,e,i) 求T树中e的第i个孩子结点 Right_Sibling(T,e) 求T树中e的右兄弟 Insert_Child(T,p,i,e) 插入e为p的第i个孩子 Delete_Child(T,p,i) 删除p的第i个孩子 Traverse(T) 遍历T树 Clear(T) 置空T树 第二节 二叉树 一、定义 形式定义:参考树的定义。 根结点、左子树、右子树。 二叉树的逻辑结构图: 基本逻辑操作(补充) Lchild(T,e) 求T树中e结点的左孩子 Rchild(T,e) 求T树中e结点的右孩子 Lsibling(T,e) 求T树中e结点的左兄弟 Rsibling(T,e) 求T树中e结点的右兄弟 二、二叉树的形态 具有3个结点的二叉树,有哪些形态? 具有n个结点的二叉树,有多少种形态? 例:n个结点的相似树的个数 int TCount(int n) { int left,count=0; if(n==0 || n==1) return(1); for(left=n-1; left=0; left--) count+=TCount(left)*TCount(n-1-left); return(count); } 计算:TCount(5)=? 三、性质 基本常识:关系数=结点数-1 性质1:若一个二叉树,叶子结点数为n0,度为2的结点数为n2, 则n0=n2+1。 例:若一棵树中度为1的结点有N1个,度为2的结点有N2个,……,度为m的结点有Nm个,则该树的叶结点有 (N1+2N2+…+mNm+1)-(N1+N2+…+Nm) 个。 性质2:二叉树的第i层上的结点数最多为2i-1。 性质3:深度为k的二叉树中结点总数最多为2k-1。 满二叉树: 深度为K的二叉树。共有2k-1个结点。 完全二叉树:深度为K的二叉树,前k-1层是满二叉树, 第k层的结点从左至右依次排列。 性质4:具有n个结点的完全二叉树的深度为int(log2n)+1。 性质5:有n个结点的完全二叉树,结点从0顺序标号,则: 1、若i0,i的双亲结点是(i-1)/2。 2、若2i+1n,i的左孩子是2i+1;若2i+1=n,i无左孩子。 3、若2i+2n,i的右孩子是2i+2;若2i+2=n,i无右孩子。 四、存储结构 1、顺序结构 依照满二叉树的结点顺序,存

文档评论(0)

飞扬的岁月 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档