网站大量收购闲置独家精品文档,联系QQ:2885784924

第4章 树-36 - v2.ppt

  1. 1、本文档共36页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第4章 树-36 - v2

第4章 树 张成文 北京邮电大学计算机学院 本章要点 熟练掌握二叉树的结构特性; 熟悉二叉树的各种存储结构的特点及适用范围; 熟练掌握二叉树各种遍历策略的算法; 利用遍历结果确定二叉树问题 树 二叉树 二叉树的遍历 中序遍历 先序遍历 后序遍历 三、算法的递归描述 1) 先序遍历 void PreOrder(BiTree bt) /*先序遍历,根指针为bt的二叉树*/ { if(bt!=NULL) { Visit(bt-data); //访问根结点 PreOrder(bt-LChild); //遍历左子树 PreOrder(bt-RChild); //遍历右子树 } } 2) 中序遍历 void InOrder(BiTree bt) /*中序遍历根指针为bt的二叉树*/ { if(bt!=NULL) { InOrder(bt-LChild); //遍历左子树 Visit(bt-data); //访问根结点 InOrder(bt-RChild); //遍历右子树 } } 3) 后序遍历 void PostOrder(BiTree bt) /* 后序遍历根指针为bt的二叉树 */ { if(bt!=NULL) { PostOrder(bt-LChild); //遍历左子树 PostOrder(bt-RChild); //遍历右子树 Visit(bt-data); //访问根结点 } } 仅知二叉树的先序序列abcdefg不能唯一确定一棵二叉树,如果同时已知二叉树的中序序列cbdaegf,则会如何? 4)由先序和中序序列确定二叉树 二叉树的先序序列 二叉树的中序序列 左子树 左子树 右子树 右子树 根 根 a b c d e f g c b d a e g f 例如: a a b b c c d d e e f f g g a b c d e f g ^ ^ ^ ^ ^ ^ ^ ^ 先序序列中序序列 小结 * * 树的定义与基本术语 1.定义: 树是n(n≥0)个结点的有限集合T。当n=0时,称为空树;当n0时,该集合满足如下条件: (1) 其中必有一个称为根(root)的特定结点,它没有直接前驱,但有零个或多个直接后继。 (2) 其余n-1个结点可以划分成m(m≥0)个互不相交的有限集T1,T2,T3,…,Tm,其中Ti又是一棵树,称为根root的子树。每棵子树的根结点有且仅有一个直接前驱,但有零个或多个直接后继。 一、树(tree)的基本概念: A B C D E F G H I J M K L A( B(E, F(K, L)), C(G), D(H, I, J(M)) ) T1 T3 T2 树根 例如: 线性结构 树型结构 第一个数据元素 (无前驱) 根结点 (无前驱) 最后一个数据元素 (无后继) 多个叶子结点 (无后继) 其它数据元素 (一个前驱、 一个后继) 其它数据元素 (一个前驱、 多个后继) 对比树型结构和线性结构的结构特点 结点(node): 树的度: 叶子结点(leaf) : 分支结点: 数据元素+若干指向子树的分支 树各结点的度的最大值 度为零的结点 度大于零的结点 D H I J M 2.树的相关术语 结点的度(degree): 结点拥有的子树数 结点的层次: (level) 假设根结点的层次为1,第l 层的结点的子树根结点的层次为l+1 树的深度(depth): 叶子结点所在的最大层次 分支(branch): 表示数据元素与它的子树的关系 路径(path): 常用家族树的术语表示结点关系 孩子(child) 结点 双亲(parent)结点 兄弟结点 由根到该结点所经的分支和结点构成 A B C D E F G H I J M K L 树的结点数n和分支数b的关系是: b=n-1 二叉树 1 二叉树的定义与基本操作 定义: 满足以下两个条件的树称做二叉树(Binary Tree): (1)每个结点的度都不大于2; (2)每个结点的孩子结点次序不能任意颠倒。 二叉树或为空树, 或是由一个根结点加上两棵分别称为左子树和右子树的、互不交的二叉树组成。 注意:二叉树是有序树,它的子树有左右之分。二叉树的度数不超过二,但度数不超过二的树未必是二叉树。 A B C D E F G H K 根结点 左子树 右子树 二叉树的五种基本形态: N 空树 只含根结点 N N N L R R 右子树为空树 L 左子树为空树 左右子树均非空树 用

文档评论(0)

ligennv1314 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档