- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第6章 树型结构; 树是由n (n≥0)个结点构成的有限集合,n=0的树称为空树;当n≠0时,树中的结点应该满足以下两个条件:;有向树 :
1) 有确定的根;
2) 树根和子树根之间为有向关系;和线性结构的比较
线性结构 ?????????????? 树结构
第一个数据元素(无前驱) ??? 根结点(无前驱)
最后一个数据元素(无后继) ?? 多个叶子结点(无后继)
其它数据元素 ?????????????? 树中其它结点
(一个前驱、一个后继)???? ?? (一个前驱、多个后继)
;基本术语
结点:数据元素 + 若干指向子树的分支
结点的度:分支的个数
树的度:树中所有结点的度的最大值
叶子结点:度为零的结点(终点结点)
分支结点:度大于零的结点(非终端结点)
从根到结点的路径:
孩子结点、双亲结点、兄弟结点、祖先、子孙
结点的层次:假设根结点的层次为1,
第l层的结点的子树根结点的层次为l+1;;树的深度:树中叶子结点所在的最大层次
森林:是m(m≥0)棵互不相交的树的集合 ;D;树型结构的其他表示方法: A(B(E,F),C,D(G,H(J,K),I)) (a) 图6.1的括号表示法;;ADT tree { 数据对象D:具有相同性质的数据元素构成的有限集合; 数据关系R:如果D为空或D仅含一个元素,则R为空;否则,D中存在一个特殊的结点root,称之为根结点,其无前驱;其他结点被分成互不相交的m(m≥0)个集合,分别构成root的m棵子树;若这些子树非空,则它们的根结点rooti均称为整棵树根结点root的后继结点;而每棵子树也是一棵树,因而它们中数据元素间的关系也同样满足数据关系R。 树的基本操作如下:; (1)inittree(T) 初始化一棵树T; (2)cleartree(T) 若树T已存在,则将它置空,使之成为一棵空树; (3)emptytree(T) 判断一棵已存在的树T是否是空树,若是返回1;否则返回0; (4)root(T) 返回树T的根结点; (5)child(T,a,i) 返回树T中结点a的第i个子女; (6)parent(T,a) 返回树T中结点a的双亲;; (7)degree(T,a) 返回树T中结点a的度数; (8)depth(T) 返回树T的高度(深度); (9)choose(T,C) 返回树T中满足条件C的某一个结点; (10)addchild(T,a,i,t1) 表示在树T中将树t1作为结点a的第i棵子树插入; (11)delchild(T,a,i) 若树T中结点a的第i棵子树存在,则删除它; (12)createtree(a,F) 构造一棵新树,该树以a为根结点、以森林F中的树为子树;; (13)equaltree(T1,T2) 判断两棵树T1和T2是否相等,若相等,返回1;否则返回0; (14)numofnode(T) 返回树T中所含结点的个数; (15)preorder(T) 输出树T前序遍历的结果; (16)postorder(T) 输出树T后序遍历的结果; (17)levelorder(T) 输出树T层次遍历的结果; (18)destroytree(T) 销毁一棵已存在的树T。} ADT Tree; 6.3 树的存储结构 ?;#define MAXSIZE 100 typedef char datatype; /*结点值的类型*/typedef struct node /*结点的类型*/ { datatype data; int parent; /*结点双亲的下标*/ } node; typedef struct tree { node treelist[MAXSIZE]; /*存放结点的数组*/ int length, root ; /* 树中实际所含结点的 个数及根结点的位置*/ } tree; ;;6.3.2 孩子表示法 ;1、指针方式的孩子表示法 ;1、指针方式的孩子表示
您可能关注的文档
- 数据分析方法及应用──基于SPSS和EXCEL环境 (2).ppt
- 数据分析方法及应用──基于SPSS和EXCEL环境 (3).ppt
- 数据分析方法及应用──基于SPSS和EXCEL环境 (4).ppt
- 数据分析方法及应用──基于SPSS和EXCEL环境 (5).ppt
- 数据分析方法及应用──基于SPSS和EXCEL环境 (6).ppt
- 数据分析方法及应用──基于SPSS和EXCEL环境 (7).ppt
- 数据分析方法及应用──基于SPSS和EXCEL环境 (8).ppt
- 数据分析方法及应用──基于SPSS和EXCEL环境 (9).ppt
- 数据分析方法及应用──基于SPSS和EXCEL环境 (13).ppt
- 数据分析方法及应用──基于SPSS和EXCEL环境 (14).ppt
文档评论(0)