树——(1)综述:二叉树,线索二叉树,二叉搜索树,B-/B+树,AVL树,红黑树
2013-06-27 17:56
561 查看
tree
(1)有且仅有一个特定的称为根的结点;
(2)当n>1时,其余结点可分为m(m>0)个互不相交的有限集T1,T2,...Tm,其中每一个集合本身又是一棵树,并且称为根的子树.
叶子(终端结点):度为0的结点称为叶子或终端结点。
分支结点(非终端结点):度不为0的结点称为非终端结点或分支结点。
层:1(根节点),2,....,高度
高度:树的最大层数
深度:高度(注:有些书籍认为深度=高度-1)
线索二叉树
二叉搜索树
B-/B+树
AVL树
红黑树
二叉树:每个结点至多只有二棵子树(即二叉树中不存在度大于2的结点),并且,二叉树的子树有左右之分,其次序不能任意颠倒。
满二叉树:每个节点的度只能为0或2,且所有叶子节点在同一层,如图(a)
完全二叉树:每一个存在的节点都和同深度的满二叉树一一对应。如图(b)
![](https://img-blog.csdn.net/20130702102636890?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveGl5YW5sZ3U=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
3.1.2 二叉树的性质
(1)在二叉树的第i层上至多有2的i-1次方个结点(i>=1)。
层数:i(i>=1), 第i层的结点数:mi
mi <= 2^( i - 1 )
(2)深度为k的二叉树至多有2的k次方减1个结点(k>=1)。
深度:k, 结点数:m
m <= 2^k - 1
(3) 对任何一棵二叉树T,如果其终端结点数为n0,度为2的结点数为n2,则n0=n2+1。
叶子结点数:n0 ; 度为2的结点数:n2
n0 = n2 + 1
(4)具有n个结点的完全二叉树的深度为|log2n|+1
完全二叉树:结点数——n ; 深度 —— k
k = [log2n] +1
(5)如果对一棵有n个结点的完全二叉树的结点按层序编号,则对任一结点i(1=<i=<n)有:
(1)如果i=1,则结点i是二叉树的根,无双亲;如果i>1,则双亲PARENT(i)是结点i/2
(2)如果2i>n,则结点i无左孩子(结点i为叶子结点);否则其左孩子LCHILD(i)是结点2i
(3)如果2i+1>n,则结点i无右孩子;否则其右孩子RCHILD(i)是结点2i+1
![](https://img-blog.csdn.net/20130702162211906?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveGl5YW5sZ3U=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
3.1.3 遍历
二叉树的遍历方法,包括:层次遍历, 先序遍历(VRL),中序遍历(RVL),后序遍历(RLV)
中序线索树,如图(a)无头节点; (b)有头节点
![](https://img-blog.csdn.net/20130704142824765?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveGl5YW5sZ3U=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
1. 定义
树是n(n>=0)个结点的有限集。在任意一棵非空树中:(1)有且仅有一个特定的称为根的结点;
(2)当n>1时,其余结点可分为m(m>0)个互不相交的有限集T1,T2,...Tm,其中每一个集合本身又是一棵树,并且称为根的子树.
2. 树的基本概念:
度:结点拥有的子树数称为结点的度。叶子(终端结点):度为0的结点称为叶子或终端结点。
分支结点(非终端结点):度不为0的结点称为非终端结点或分支结点。
层:1(根节点),2,....,高度
高度:树的最大层数
深度:高度(注:有些书籍认为深度=高度-1)
3. 树的分类
二叉树线索二叉树
二叉搜索树
B-/B+树
AVL树
红黑树
3.1 二叉树
3.1.1 定义二叉树:每个结点至多只有二棵子树(即二叉树中不存在度大于2的结点),并且,二叉树的子树有左右之分,其次序不能任意颠倒。
满二叉树:每个节点的度只能为0或2,且所有叶子节点在同一层,如图(a)
完全二叉树:每一个存在的节点都和同深度的满二叉树一一对应。如图(b)
3.1.2 二叉树的性质
(1)在二叉树的第i层上至多有2的i-1次方个结点(i>=1)。
层数:i(i>=1), 第i层的结点数:mi
mi <= 2^( i - 1 )
(2)深度为k的二叉树至多有2的k次方减1个结点(k>=1)。
深度:k, 结点数:m
m <= 2^k - 1
(3) 对任何一棵二叉树T,如果其终端结点数为n0,度为2的结点数为n2,则n0=n2+1。
叶子结点数:n0 ; 度为2的结点数:n2
n0 = n2 + 1
(4)具有n个结点的完全二叉树的深度为|log2n|+1
完全二叉树:结点数——n ; 深度 —— k
k = [log2n] +1
(5)如果对一棵有n个结点的完全二叉树的结点按层序编号,则对任一结点i(1=<i=<n)有:
(1)如果i=1,则结点i是二叉树的根,无双亲;如果i>1,则双亲PARENT(i)是结点i/2
(2)如果2i>n,则结点i无左孩子(结点i为叶子结点);否则其左孩子LCHILD(i)是结点2i
(3)如果2i+1>n,则结点i无右孩子;否则其右孩子RCHILD(i)是结点2i+1
3.1.3 遍历
二叉树的遍历方法,包括:层次遍历, 先序遍历(VRL),中序遍历(RVL),后序遍历(RLV)
3.2 线索二叉树
利用二叉链表中的空指针域,存放指向结点在某种遍历次序下的前趋和后继结点的指针(这种附加的指针称为"线索")。中序线索树,如图(a)无头节点; (b)有头节点
相关文章推荐
- 关于树的总结从二叉树->二叉搜索树->平衡二叉树->红黑树->B树与B+树
- B-Tree 漫谈 (从二叉树到二叉搜索树到平衡树到红黑树到B树到B+树到B*树)
- 数据结构(一)二叉树 & avl树 & 红黑树 & B-树 & B+树 & B*树 & R树
- 二叉搜索树、AVL树、B-树、B+树、B*树、红黑树
- 数据结构(三):非线性逻辑结构-特殊的二叉树结构:堆、哈夫曼树、二叉搜索树、平衡二叉搜索树、红黑树、线索二叉树
- 非线性逻辑结构-特殊的二叉树结构:堆、哈夫曼树、二叉搜索树、平衡二叉搜索树、红黑树、线索二叉树
- AVL树,红黑树,B树,B+树,Trie树应用场景简介
- 二叉查找树,红黑树,AVL树,B~/B+树(B-tree),伸展树——优缺点及比较
- 浅谈AVL树,红黑树,B树,B+树原理及应用
- 二叉查找树,红黑树,AVL树,B~/B+树(B-tree),伸展树——优缺点及比较
- PAT树_层序遍历叶节点、中序建树后序输出、AVL树的根、二叉树路径存在性判定、奇妙的完全二叉搜索树、最小堆路径、文件路由
- 数据结构学习笔记:B树、B+树、红黑树、AVL树
- AVL树,红黑树,B树,B+树,Trie树应用场景简介
- AVL树、红黑树、B/B+树、Trie树
- 二叉树之一BST树,AVL树详解及B树和红黑树原理分析
- 二叉查找树,红黑树,AVL树,B~/B+树(B-tree),伸展树——优缺点及比较
- 二叉查找树、红黑树、B树、B+树、AVL树
- AVL树,红黑树,B-B+树,Trie树原理和应用
- 浅谈AVL树,红黑树,B树,B+树原理及应用
- AVL树、红黑树、B/B+树和Trie树的比较