- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第5章 树 《数据结构(C#语言描述)》配套PPT 北京大学出版社 制作:陈广 博客: 引入 数据结构中使用树形结构来表示元素间的一对多的关系。 5.1 树的基本概念 树(Tree)是n(n≥0)个结点(Node)的有限集。在任意一棵非空树中,有且仅有一个特定的称为根(Root)的结点,当n1时,其余结点分成m(m0)个互不相交的有限集T1,T2,…,Tm,其中每一个集合本身又是一棵树,并且称为根的子树。树的定义是递归的,即在树的定义中又用到了树的概念,它刻画了树的固有特性,即一棵树由若干棵子树构成,而子树又由更小的若干棵子树构成。 5.1 树的基本概念 5.1 树的基本概念 树的结点: 数据元素的内容及指向其子树的分支统称为结点。 结点的度: 在树中,结点拥有子树的个数称为结点的度。 树的度: 树的度是树内各结点的度的最大值。 叶子或终端结点: 度为0的结点称为叶子或终端结点。 5.1 树的基本概念 非终端结点或分支结点: 度不为0的结点称为非终端结点或分支结点。除根结点之外,分支结点也称为内部结点。 孩子、双亲: 结点的子树的根称为该结点的孩子,该结点称为孩子的双亲或父亲。 兄弟: 同一个双亲的孩子称为兄弟。 祖先和子孙: 结点的祖先是从根到该结点所经分支上的所有结点。反之,以某结点为根的子树中的任一结点都称为该结点的子孙。 5.1 树的基本概念 层数、堂兄弟: 从根结点开始定义,根为第一层,根的孩子为第二层。其余结点的层数为双亲结点的层数加1。双亲在同一层上的结点互为堂兄弟。 树的深度: 树结点中的最大层数称为树的深度 。 5.1 树的基本概念 有序树和无序树: 如果树中结点的各子树从左至右是有次序的(即不能互换),则称该树为有序树,否则称为无序树。 5.1 树的基本概念 森林: 森林为有限棵树的集合。如图5.5所示,对树而言,删去其根节点,就得到一个森林;对森林而言,加上一个结点作为根就变为一棵树。 5.2 二叉树 二叉树的特点是每个结点至多有两棵子树(即二叉树不存在度大于2的结点),并且二叉树的子树有左右之分,其次序不能任意颠倒,即如果将其左右子树颠倒,就成为另一棵不同的二叉树。即使树中结点只有一棵子树,也要区分它是左子树还是右子树。因此,二叉树具有如图所示的5种基本形态: 5.2 二叉树 在一棵二叉树中,如果所有分支结点都同时具有左孩子和右孩子,并且所有叶子结点都在同一层上。这种树的特点是每层上的结点数是最大结点数。 5.2 二叉树 完全二叉树只允许树的最后一层出现空结点,且最下层的叶子结点集中在树的左部。显然,一棵满二叉树必定是一棵完全二叉树,而完全二叉树未必是满二叉树。 5.2 二叉树 把一个满二叉树自上而下、从左到右顺序编号,依次存放在数组内,可得到图5.8(a)所示的结果。设满二叉树结点在数组中的索引号为i,那么有如下性质。 如果i = 0,此结点为根结点,无双亲。 如果i 0,则其双亲结点为(i -1) / 2 。(注意,这里的除法是整除,结果中的小数部分会被舍弃。) 结点i的左孩子为2i + 1,右孩子为2i + 2。 如果i 0,当i为奇数时,它是双亲结点的左孩子,它的兄弟为i + 1;当i为偶数时,它是双亲结点的右孩子,它的兄弟结点为i – 1。 深度为k的满二叉树需要长度为2 k-1的数组进行存储。 5.2 二叉树 一个深度为k的二叉树需要2k-1个存储空间 。 5.2 二叉树 二叉树的链式存储结构可分为二叉链表和三叉链表。二叉链表中,每个结点除了存储本身的数据外,还应该设置两个指针域left和right,它们分别指向左孩子和右孩子。 5.2 二叉树 如果在二叉树中经常需要寻找某结点的双亲,每个结点还可以加一个指向双亲的指针域parent,这就是三叉链表。 5.2 二叉树 双亲链表只存储结点的双亲信息而不存储孩子信息 。 5.3 二叉树的遍历 二叉树遍历(Traversal)就是按某种顺序对树中每个结点访问且只能访问一次的过程。访问的含义很广,如查询、计算、修改、输出结点的值。树遍历本质上是将非线性结构线性化,它是二叉树各种运算和操作的实现基础 5.3 二叉树的遍历 5.3 二叉树的遍历 5.3 二叉树的遍历 5.3 二叉树的遍历 5.3 二叉树的遍历 5.3 二叉树的遍历 5.3 二叉树的遍历 5.3 二叉树的遍历 5.4 线索二叉树 5.4 线索二叉树 5.5
您可能关注的文档
最近下载
- 初三数学二次根式测试题目一二.doc VIP
- 高考物理公式大全.doc VIP
- 《心肺复苏术》PPT课件ppt.pptx VIP
- 2023-2025高考英语高频词汇汇编(打印背诵版).pdf
- 5.1 社会历史的本质 课件(共34张PPT)(含音频+视频).pptx VIP
- 让蕲艾走向世界详细资料.ppt VIP
- 家政保洁企业发展规划经营计划.pptx VIP
- 局限性脑炎多学科决策模式中国专家共识(2025版).docx VIP
- 中国成人急性呼吸窘迫综合征(ARDS)诊断与非机械通气治疗指南(2023)解读PPT课件.pptx VIP
- 2023中国成人急性呼吸窘迫综合征(ARDS)诊断与非机械通气治疗指南(完整版).pdf VIP
文档评论(0)