- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
[理学]数据结构第四章讲稿.ppt
一、树的定义 树是由一个集合以及在该集合上定义的一种关系构成的。集合中的元素称为树的结点,所定义的关系称为父子关系。(1)单个结点是一棵树,树根就是该结点本身; (2)设T1T2…Tk是树,它们的根结点分别为n1n2…nk。用一个新结点n作为n1n2…nk的父亲,则得到一棵新树,结点n就是新树的根。称n1n2…nk为一组兄弟结点,它们都是结点n的儿子结点。还称T1T2…Tk为结点n的子树。 将空集合也看作树,称为空树。 一、树的定义(术语) (1)一个结点的儿子结点的个数称为该结点的度。 (2)树中度为零的结点称为叶结点或终端结点。 (3)树中度不为零的结点称为分枝结点或非终端结点。除根结点外的分枝结点统称为内部结点。 (4)如果存在树中的一个结点序列K1K2…Kj使得结点Ki是结点Ki+1 的父结点(1=i=j),则称该结点序列是树中从结K1到结点Kj的一条路径或道路。其长度为j-1,它是该路径所经历的边的数目。树中任一结点到其自身的路径长度为0。 (5)如果在树中存在一条从结点K到结点M的路径,则称结点K是结点M的祖先,也称结点M是结点K的子孙或后裔。注意:任一结点既是它自己的祖先也是它自己的子孙。 (6)将树中一个结点非自身祖先和子孙分别称为该结点的真祖先和真子孙。 一、树的定义(术语) (7)树中一个结点的高度是指从该结点到作为它的子孙的各叶结点最长路径的长度。树的高度是指根结点的高度。 (8)从树根到结点n的路径长度为结点n的深度或层数。 (9)若结点n的儿子结点从左到右排列为n1n2…nk,则称n1是n的最左儿子,或简称左儿子;称ni是ni-1的右邻兄弟,或称右兄弟(i=2,3…k)。 (10)森林是m(m=0)棵互不相交的树的集合。 二、二叉树 二叉树T是有限个结点的集合,它或者是空集,或者是由一个根结点u以及分别称为左子树和右子树的两棵互不相交的二叉树u(1)和u(2)组成。 二叉树的性质: (1)高度为h=0的二叉树至少有h+1个结点。 (2)高度不超过h(=0)的二叉树至多有2exp(h+1)-1个结点 (3)含有n=1个结点的二叉树的高度至少多为n-1 (4)含有n=1个结点的二叉树的高度至多为「log n」。 三、树的遍历 所谓遍历是指对树中所有结点的系统的访问,即依次对树中每个结点访问一次且仅访问一次。树的3种最重要的遍历方式分别称为前序遍历、中序遍历和后序遍历。 如果T是一棵空树,那么对T进行前序遍历、中序遍历和后序遍历都是空操作,得到的列表为空表。 如果T是一棵单结点树,那么对T进行前序遍历、中序遍历和后序遍历都只访问这个结点。这个结点本身就是要得到的相应列表。 否则,设T是以n为树根,树根的子树从左到右依次为T1,T2,…,TK,那么有: 三、树的遍历 (1)对T进行前序遍历是先访问树根n,然后依次前序遍历T1,T2,…,TK,即前序遍历T1,然后前序遍历T2,…,最后前序遍历TK。 (2)对T进行中序遍历是先中序遍历T1,然后访问树根n,接着依次对T2,…,TK进行中序遍历。 (3)对T进行后序遍历是先依次对T1,T2,…,TK进行后序遍历,最后访问树根n。 三、树的遍历 PROCEDURE PREORDER (n : node); begin Visite(结点n); for (n的从左到右的每个儿子c ) do PRORDER(c) end;{PRORDER} 三、树的遍历 PROCEDURE INORDER (n : node); begin if n 是叶结点 then 访问结点n else begin INORDER(结点n的最左儿子); 访问结点n; for 从左到右的其他每一个儿子c do INORDER(c) end end; 三、树的遍历 对一棵树进行前序列表或后序列表有助查询结点间的祖先——子孙关系。假设结点n在后序列表中的序号为postorder(n),我们称这个整数为结点n的后序编号。 结点的后序编号具有这样的特点:设结点n的真子孙个数为desc(n),那么在以n为根的子树中的所有结点的后序编号恰好落在postorder(n)-desc(n)与postorder(n)之间。因此为了检验结点x是否为结点y的子孙
您可能关注的文档
最近下载
- 六年级上册美术第7课 做做陶艺1 浙美版(2018秋).ppt VIP
- (5.2.1)--5.2由推理公式推求设计洪水.pdf VIP
- 2025年河北保定市竞秀区公开招聘社区工作者66名笔试备考试题及答案解析.docx VIP
- 穴位贴敷疗法课件.pptx VIP
- 2022《醋业市场发展的案例分析报告—以天缘醋业为例》10000字.doc VIP
- 支付农民工工资承诺书.docx VIP
- 《药用植物识别技术》课件——3.茎.ppt VIP
- “空椅子”技术及应用.pdf VIP
- 2025全国推广普通话宣传周PPT2025第28届推普周.pptx VIP
- 第28届全国推广普通话宣传周.pptx VIP
文档评论(0)