数据结构之二叉搜索树,二叉平衡树,红黑树,B树,B+树

(一)二叉搜索树(BST):
如果一个二叉树满足:对于任意一个节点,其值不小于左子树的任何节点,且不大于右子树的任何节点(反之亦可),则为二叉搜索树。如果按照中序遍历,其遍历结果是一个有序序列。因此,二叉搜索树又称为二叉排序树。

二叉搜索树的性质:
1,任意节点x,其左子树中的key不大于x.key,其右子树中的key不小于x.key。
2,不同的二叉搜索树可以代表同一组值的集合。
3,二叉搜索树的基本操作和树的高度成正比,所以如果是一棵完全二叉树的话最坏运行时间为Θ(lgn),但是若是一个n个节点连接成的线性树,那么最坏运行时间是Θ(n)。
4,根节点是唯一一个parent指针指向NIL节点的节点。
5,每一个节点至少包括key、left、right与parent四个属性,构建二叉搜索树时,必须存在针对key的比较算法。

AVL平衡二叉搜索树
定义:平衡二叉树或为空树,或为如下性质的二叉排序树:
(1)左右子树深度之差的绝对值不超过1;
(2)左右子树仍然为平衡二叉树.
平衡因子BF=左子树深度-右子树深度.
平衡二叉树每个结点的平衡因子只能是1,0,-1。若其绝对值超过1,则该二叉排序树就是不平衡的。

(二)红黑树:
概念:红黑树是一棵二叉搜索树,它在每个结点上增加了一个存储位来表示结点的颜色,可以是RED 或 BLACK。通过对任何一条根到叶子的简单路径上各个结点的颜色进行约束,红黑树确保没有一条路径回避其他路径长处2倍,因而是近似平衡的。
红黑树的性质:
一棵红黑树是满足下面红黑性质的二叉搜索树:
 1.每个结点或是红色的,或是黑色的
 2.根节点是黑色的
 3.每个叶结点(NULL)是黑色的
 4.如果一个结点是红色的,那么他的两个子结点都是黑色的
5.对于每个结点,从该结点到其所有后代叶结点的简单路径上,包含相同数目的黑色结点

你可能感兴趣的:(linux,数据结构)