树——(1)综述:二叉树,线索二叉树,二叉搜索树,B-/B+树,AVL树,红黑树
来源:互联网 发布:计算机二级考试软件 编辑:程序博客网 时间:2024/05/29 15:10
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)有头节点
- 树——(1)综述:二叉树,线索二叉树,二叉搜索树,B-/B+树,AVL树,红黑树
- BST二叉搜索树、AVL平衡二叉树、RBT红黑树、B-树、B+树、B*树
- 二叉搜索、 B- 、B+、 红黑 、AVL 树
- 二叉搜索树、AVL树、B-树、B+树、B*树、红黑树
- 二叉查找树、红黑树、B树、B+树、AVL树
- 数据结构-BST、AVL、二叉堆、B树、B+树、红黑树
- BST二叉查找树、AVL平衡二叉树、RBT红黑树、B-/B+/B*树性能对比
- 数据结构中常见的树(BST二叉搜索树、AVL平衡二叉树、RBT红黑树、B-树、B+树、B*树)
- 数据结构中常见的树(BST二叉搜索树、AVL平衡二叉树、RBT红黑树、B-树、B+树、B*树)
- 数据结构中常见的树(BST二叉搜索树、AVL平衡二叉树、RBT红黑树、B-树、B+树、B*树)
- 数据结构中常见的树(BST二叉搜索树、AVL平衡二叉树、RBT红黑树、B-树、B+树、B*树)
- 数据结构中常见的树(BST二叉搜索树、AVL平衡二叉树、RBT红黑树、B-树、B+树、B*树)
- 数据结构中常见的树(BST二叉搜索树、AVL平衡二叉树、RBT红黑树、B-树、B+树、B*树)
- 数据结构中常见的树(BST二叉搜索树、AVL平衡二叉树、RBT红黑树、B-树、B+树、B*树)
- 数据结构中常见的树(BST二叉搜索树、AVL平衡二叉树、RBT红黑树、B-树、B+树、B*树)
- 数据结构中常见的树(二叉搜索树、AVL平衡二叉树、RBT红黑树、B-树、B+树、B*树)
- 数据结构中常见的树(BST二叉搜索树、AVL平衡二叉树、RBT红黑树、B-树、B+树、B*树)
- 数据结构中常见的树(BST二叉搜索树、AVL平衡二叉树、RBT红黑树、B-树、B+树、B*树)
- Squid集群做CDN全网加速
- QT MSVC google-breakpad 生成lib
- Linux设备模型之tty驱动架构分析
- python 入门
- 斯坦福:facebook创始人扎克伯格演讲
- 树——(1)综述:二叉树,线索二叉树,二叉搜索树,B-/B+树,AVL树,红黑树
- js中通过父级进行查找的解决办法
- android中判断网络连接是否可用
- 日期
- C# 值类型、引用类型
- 链表操作
- Windows On/Off Transitions Solutions Guide-Sleep and Hibernate Transition
- 设计模式六大原则
- linux下C++动态链接C语言库