树——二叉树
Posted 牧鱼ys
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了树——二叉树相关的知识,希望对你有一定的参考价值。
树
树是n个节点的有限集。当n=0时,称为空树。在任意一颗非空树中应满足:
- 有且仅有一个特定的称为根的节点
- 当n>1时,其余节点可分为m个互不相交的有限集T1,T2,…,Tm,其中每个集合本身时一棵树,并且称为根的子树。
其他术语如度、深度等等不做详细阐述
性质
- 树中的结点数等于所有节点的度数加1
- 度为m的树中第i层之多有 m i − 1 m^i-1 mi−1个节点( i ≥ 1 i \\geq 1 i≥1)
- 高度为h的m叉树至多有 m h − 1 m − 1 \\fracm^h-1m-1 m−1mh−1个节点
- 具有n个节点的m叉树的最小高度为 ⌈ l o g m ( n ( m − 1 ) + 1 ) ⌉ \\lceil log_m(n(m-1)+1)\\rceil ⌈logm(n(m−1)+1)⌉
二叉树
二叉树与度为2的有序树的区别
- 度为2的树至少有三个节点,而二叉树可以为空
- 度为2的有序树的孩子的左右次序是相对于另一孩子而言的,若某个节点只有一个孩子节点,则这个孩子就无须区分其左右次序,而二叉树无论其孩子数是否为2,均需确定其左右次序,即二叉树的节点次序是确定的
特殊的二叉树
- 满二叉树
- 完全二叉树:对于最大层次中的叶子节点,都依次排列在该层的最左边的位置上
- 二叉排序树:左子树上所有节点的关键字均小于根节点的关键字;右子树上的所有节点的关键字都大于根节点的关键字;左右子树又各是一颗二叉排序树
- 平衡二叉树:树上任一节点的左子树和右子树的深度之差不超过1
性质
- 非空二叉树上的叶子结点数等于度为2的结点数加1,即 n 0 = n 2 + 1 n_0= n_2+1 n0=n2+1。即结点数=边数+1
- 非空二叉树上第 k k k层上至多有 2 k − 1 2^k-1 2k−1个结点 ( k ≥ 1 ) (k≥1) (k≥1)。
- 高度为 h h h的二叉树至多有 2 h − 1 2^h-1 2h−1个结点 ( h ≥ 1 ) (h≥1) (h≥1)。
- 对完全二叉树按从上到下、从左到右的顺序依次编号1,2,…,n,则有以下关系:
- 当 i > 1 i>1 i>1时,结点i的双亲的编号 ⌊ i / 2 ⌋ \\lfloor i/2 \\rfloor ⌊i/2⌋,即当i为偶数时,其双亲的编号为 i / 2 i/2 i/2,它是双亲的左孩子;当i为奇数时,其双亲的编号为 ( i − 1 ) / 2 (i- 1)/2 (i−1)/2,它是双亲的右孩子。
- 当 2 i ≤ n 2i≤n 2i≤n时,结点i的左孩子编号为 2 i 2i 2i,否则无左孩子。
- 当 2 i + 1 ≤ n 2i+1≤n 2i+1≤n时,结点i的右孩子编号为 2 i + 1 2i+1 2i+1,否则无右孩子。
- 结点i所在层次(深度)为 ⌊ l o g 2 i ⌋ + 1 \\lfloor log_2i \\rfloor +1 ⌊log2i⌋+1。
- 具有n个(n>0)结点的完全二叉树的高度为 ⌈ l o g 2 ( n + 1 ) ⌉ \\lceil log_2(n+ 1) \\rceil ⌈log2(n+1)⌉或 ⌊ l o g 2 n ⌋ + 1 \\lfloor log_2n \\rfloor +1 ⌊log2n⌋+1.
存储结构
- 线性存储
- 链式存储
以上是关于树——二叉树的主要内容,如果未能解决你的问题,请参考以下文章