数据结构 树(一)树和二叉树的概念与性质


树的概念和结构

树是一种非线性的数据结构,它是由n个有限结点组成一个具有层次关系的集合,把它叫做树是因为它看起来像一棵倒挂的树,如图所示
在这里插入图片描述

在这里插入图片描述

  1. 有一个特殊的结点,称为根节点,根节点没有前驱结点
  2. 除根节点外,其余结点被分成M个互不相交的集合T1、T2、、、、、Tm, 其中每一个集合Ti又是一棵结构与树类似的子树。每棵子树的根节点有且只有一个前驱,可以有0个或多个后驱结点
  3. 子树是不相交的
  4. 除了根节点外,每个节点有且仅有一个父节点
  5. 一棵N个节点的树有N-1条边

在这里插入图片描述
6. 节点的度:一个节点含有的子树的个数称为该节点的度,如节点D的度为2
7. 叶子节点:度为零的结点为叶子节点,如上图所有#
8. 父节点:如果一个节点含有子节点,则称这个节点为父节点,如C是E和#的父节点
9. 子节点:如果一个结点含有的子树的根节点称为该节点的子节点,如A的子节点是B,C
10. 兄弟节点:具有相同的父节点的结点互称为兄弟节点,如B,C是兄弟节点
11. 树的度:树所包含的节点中,拥有最大的分支的数目为该树的度。上图是个二叉树度为2
12. 树的深度(高度):树中节点的最大层次


二叉树的概念和结构

二叉树是最常使用的树,特点是 :

  1. 每个节点最多有两棵子树,即二叉树不存在度大于2的节点
  2. 二叉树的子树有左右之分,其子树的次序不能颠倒
    在这里插入图片描述
    在这里插入图片描述

特殊的二叉树

满二叉树

一个二叉树,如果每一层的节点数都达到最大值,则这个二叉树就是满二叉树。也就是说,如果一个二叉树的层数为K,且节点总数为(2^k)-1,则就是满二叉树

完全二叉树

满二叉树是一种特殊的完全二叉树,对于深度为k的,有n个节点的二叉树,当且仅当每一个节点都与深度为K的满二叉树中编号1~n的结点一一对应时称为完全二叉树

在这里插入图片描述
有一个很好的区分它们的方法,满二叉树是除叶子节点外所有节点都存在左右子树的一棵树,而完全二叉树则是所有节点都是连续的,不存在有右子树而没有左子树的情况

二叉树的性质

  1. 一棵非空二叉树上的第i层最多有2^(i - 1)个节点(层数从1开始)
  2. 深度为h的二叉树的最大节点数为2^n - 1个
  3. 如果叶子节点的个数为n0,度为2的结点的个数为n2,则有 n0 = n2 + 1
  4. 具有n个节点的完全二叉树的深度为h = log2(n) + 1
  5. 如果一个结点的编号为i(从0开始),那么他的左孩子编号为2i +1,右孩子编号为2i +2,他的父节点为(i - 1) / 2
发布了60 篇原创文章 · 获赞 78 · 访问量 6322

猜你喜欢

转载自blog.csdn.net/qq_35423154/article/details/104581550