我是靠谱客的博主 要减肥凉面,最近开发中收集的这篇文章主要介绍,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

树的定义

– 树是一种非线性的数据结构
– 树是由 n(n>=0)个节点组成的有限集合
   – 如果 n = 0 ,称为空树
   – 如果 n > 0 ,则:
      1、定有个根节点
      2、根节点后只有直接后继,但是没有直接前驱
      3、除根以外的其他节点划分为 m(m>=0)个互不相交的有限集合 T0,T1,…,Tm-1,每个集合又是一棵树给,并且称之为根的子树。

树是递归定义的,树自身也是递归构成的。



树中度的概念

– 树的结点包含一个数据及若干指向子树的分支
– 结点拥有的子树数目称为节点的度
   - 度为 0 的结点称为叶结点
   - 度不为 0 的结点称为分支结点
– 树的度定义为所有结点中度的最大值



树的前驱和后继

– 结点的直接后继称为该结点的孩子
   - 相应的,该结点称为孩子的双亲
– 结点的孩子的孩子的…称为该结点的子孙
   - 相应的,该结点称为子孙的祖先
– 同一个双亲的孩子之间互称兄弟



树结点的层次

– 根为第一层
– 根的孩子为第二层
– 根的孩子的孩子为第三层

– 树中结点的最大层次称为树的深度或高度



树的有序性

如果树中结点各子树从左向右是有次序的,子树间不能互换位置,则称该树为有序树,否则为无序树。



森林的概念

森林是由 n(n>0)棵互不相交的树组成的集合

树结构模型

假如有这样一棵树,如图
在这里插入图片描述
1、双亲孩子表示法:结点中通过一个链表保存孩子的地址来维系整棵树的关系。
图示
在这里插入图片描述
2、孩子兄弟表示法:每个结点中只保存孩子的地址和右兄弟的地址,来维系整棵树的关系。
在这里插入图片描述

个人推荐

推荐在结点中添加一个成员指向父结点。

有的人会问,为什么要加上这个成员?树的定义中并没有这个要求啊。

是的,的确在树的定义中没有这个要求。不过我这样推荐是有原因的,如果存在这个成员,在某些情景下可以方便我们。
在这里插入图片描述
有时候我们可能需要求由根到某个结点的过程中,经过了哪些结点。如果存在指向父节点的指针,就非常方便了。

最后

以上就是要减肥凉面为你收集整理的的全部内容,希望文章能够帮你解决所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(43)

评论列表共有 0 条评论

立即
投稿
返回
顶部