数据结构---树与二叉树

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/lu_LLLR/article/details/80228622

1、树的定义
树是一种 非线性的数据结构。
树是n(n>=0)个结点的有限集,在任意一棵非空树中:
1)有且仅有一个特定的被称为 (root)的结点
2)当n>1时,其余结点可分为m(m>0)个互不相交的有限集,其中每个集合本身又是一棵树,并且称为根的 子树(subTree)
3)每棵子树也是由唯一的根结点和若干棵互不相交的子树组成的
4)树的结点数目可以为0,当为0时,这棵树称为一棵 空树

2、树的基本术语
1)结点:结点不仅包含数据元素,而且包含指向子树的分支
2)结点的度:结点拥有的子树个数或者分支的个数
3)树的度:树中各节点度的最大值
4)叶子结点:又叫做 终端结点,指度为0的结点
5)非终端结点:又叫做 分支结点 ,指度不为0的结点
6)孩子:结点的子树的根
7)双亲:与孩子的定义对应
8)兄弟:同一个双亲的孩子之间互为兄弟
9)祖先:从根到某结点的路径上的所有结点
10)子孙:以某结点为根的子树中的所有结点,都是该结点的子孙
11)层次:从根开始,根为第一层,根的孩子为第二层,根的孩子的孩子为第三层,以此类推
12)树的高度(深度):树中结点的最大层次
13)结点的深度和高度:
      1、结点的深度是从根结到该结点路径上的结点个数;
     2、 从某结点往下走可能到达多个叶子结点,对应了多条通往这些叶子结点的路径,其中最长的那条路径的长度即为该结点在树中的高度
      3、根结点的高度为树的高度
14)堂兄弟:双亲在 同一层的结点互为堂兄弟
15)有序树:树中结点的子树从左到右是有次序的,不能交换,这样的树叫作有序树
16)无序树:树中结点的子树没有顺序,可以任意交换,这样的树叫作无序树
17)丰满树:即为理想平衡树,要求除最底层外,其他层都是满的
18)森林:若干棵互不相交的树的集合

3、树的存储结构

1)顺序存储结构
树的顺序存储结构中最简单直观的是双亲存储结构

2)链式存储结构
树的链式存储结构最常用的有以下两种:

  孩子存储结构:实质上就是图的邻接表存储结构,树就是一种特殊的图
  孩子兄弟存储结构:与树和森林与二叉树的相互转换关系密切

  


猜你喜欢

转载自blog.csdn.net/lu_LLLR/article/details/80228622