数据结构与算法-多路查找树和图

一、二叉树与B树

二叉树操作数据效率比较高,但是存在一定的问题:二叉树需要加载到内存如果节点少不影响,但是如果二叉树结点很多就存在问题。构建二叉树时,需要多次进行I/O操作,节点海量,构建二叉树时,速度有影响。结点海量,会造成二叉树的高速很大,降低操作速率。

多叉树二叉树中每个节点有一个数据项,最多有两个自己诶单,如果语序树的每个节点可以有两个以上的子结点,那么这个树称为n阶多叉树,或者称为n叉树

B 树通过重新组织节点,降低树的高度,并且减少 i/o 读写次数来提升效率

二、树

1、2-3树

2-3树是最简单的B树结构,特点:

①2-3树所有叶子节点都在同一层。

②有两个子结点的结点叫二节点,二节点要么没有子结点,要么有两个节点。

③有三个子结点的结点叫三节点,三节点有么没有子结点,要么有三个子结点。

④2-3树是由二节点和三节点构成的树。

左边最小小于父结点,右边大于父结点,中间处于父结点的中间值。  

2、B-树、B+树、B*树

B-树

B-tree 树即 B 树,B 即 Balanced,平衡的意思。有人把 B-tree 翻译成 B-树,容易让人产生误解。会以为 B- 树是一种树,而 B 树又是另一种树。实际上,B-tree 就是指的 B 树

B-树的阶:节点最多子结点个数,比如2-3树的阶是3,2-3-4树的阶是4

是一种多路搜索树(并不是二叉的)

定义任意非叶子结点最多只有M个儿子;且M>2;

根结点的儿子数为[2, M];

除根结点以外的非叶子结点的儿子数为[M/2, M];

每个结点存放至少M/2-1(取上整)和至多M-1个关键字;(至少2个关键字)

非叶子结点的关键字个数=指向儿子的指针个数-1;

非叶子结点的关键字:K[1], K[2], …, K[M-1];且K[i] < K[i+1];

非叶子结点的指针:P[1], P[2], …, P[M];其中P[1]指向关键字小于K[1]的子树,P[M]指向关键字大于K[M-1]的子树,其它P[i]指向关键字属于(K[i-1], K[i])的子树;

所有叶子结点位于同一层;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值