第6章 树

树(Tree) 是 n(n>=0) 个结点的有限集。n=0 时称为空树。在任意一颗非空树中:
(1)、有且仅有一个特定的称为根(root)的结点
(2)、当 n>1 时,其余结点可分为 m(m>0) 个互不相交的有限集 T1、T2、......Tm,其中每一个集合本身又是一棵树,并且称为根的子树(SubTree)

第6章 树_第1张图片

1、结点分类

第6章 树_第2张图片

2、结点间的关系

第6章 树_第3张图片

3、结点层次

第6章 树_第4张图片

4、树的抽象数据类型

第6章 树_第5张图片

5、二叉树的定义

二叉树(Binary Tree)是 n (n>=0) 个结点的有限集合,该集合或者为空集(称为空二叉树),或者由一个根节点和两颗互不相交的、分别称为根节点的左子树和右子树的二叉树组成
第6章 树_第6张图片

6、特殊二叉树

6.1、斜树

所有的结点都只有左子树的二叉树叫左斜树
所有的结点都只有右子树的二叉树叫右斜树

6.2、满二叉树

在一颗二叉树中,如果所有分支结点都存在左子树和右子树,并且所有叶子都在同一层上,这样的二叉树称为满二叉树
第6章 树_第7张图片

6.3、完全二叉树

对一颗具有 n 个结点的二叉树按层序编号,如果编号为 i (1<= i <= n) 的结点与同样深度的满二叉树中编号为 i 的结点在二叉树中位置完全相同,则这颗二叉树称为完全二叉树
第6章 树_第8张图片

7、二叉树的性质

  • 在二叉树的第 i 层上至多有 2i-1 个结点 (i>=1)
  • 深度为 k 的二叉树至多有 2k-1 个结点 (k>=1)
  • 对任何一颗二叉树 T,如果其终端(叶子)节点数为 n0,度为 2 的节点数为 n2,则 n0 = n2 + 1

8、二叉树的存储结构

9、二叉树遍历算法

  • 前序遍历、中序遍历、后序遍历、层序遍历

10、线索二叉树

研究中发现,二叉链表有很多浪费的空指针可以利用,查找某个节点的前驱和后继为什么非要每次遍历才可以得到,这就引出了如何构造一颗线索二叉树的问题。线索二叉树给二叉树的节点查找和遍历带来了高效率
第6章 树_第9张图片

11、赫夫曼树

赫夫曼编码 - 基本的压缩编码方法

带权路径长度最小的二叉树称做赫夫曼树
第6章 树_第10张图片
  • 赫夫曼树更大目的是为了解决当年远距离通信(主要是电报)的数据传输的最优化问题


    第6章 树_第11张图片

你可能感兴趣的:(第6章 树)