B树
B-树就是B树(可能有部分人会习惯上把B-树读为B减树,其实并不存在B减树,只是读法上的不同而已),B就是balanced,平衡的意思。B-树就是指的B树,特此说明一下。
先介绍一下二叉搜索树。
- 顾名思义,二叉搜索树,即指最多拥有两个叉,这里的叉即为所有非叶子结点的儿子(Lift和Right);
- 所有的结点存储一个关键字;
- 非叶子结点的左指针指向小于其关键字的结点,右指针指向对于其关键字的结点,结构如下图:
二叉搜索树的搜索,从根结点开始,如果查询的关键字与结点关键字相等,则该结点为查询的结点,如果查询关键字比结点关键字小,则进入左子树,反之则进入右子树;如果左子树为空或者右子树为空,则返回查找不到响应的关键字;
如果二叉搜索树的所有叶子结点的左右子树的树木保持一个平衡即左右子树个数大致相等的话,其搜索则更接近与二分查找;但是它相比连续内存空的二分查找的优点是:改变二叉搜索树的结构(添加或者删除)不需要大段的移动数据,甚至通常都是常数开销;
如下图:
红色字体代表插入数据,搜索二叉树在插入结点时,只要根据插入数据的大小查找出他应该插入的位置即可&