目录
前言
一、数据结构
1. B-树
2. 哈希查找
二、微机
前言
第三周了,这周是超级紧张的复习,虽然科目不算多,但是内容都又多又杂,微机跟离散的复习简直是一种大折磨。。。。现在大问题在于,我的数据结构好像也不是很行,尽管硬啃了一下《大话数据结构》,不过感觉是在边看边忘。9M!
完蛋了。
一、数据结构
1. B-树
这个B-树,上课的时候是没有怎么听懂……打算着是总复习的时候来看一下的,是时候学习一下了。
看上去本来是跟二叉树差不太多,本来也确实差不多,确实本质上是从二叉树里演变过来的,还是父子树,不过呢,B树每一个结点的孩子数是可以多于两个的,且每一个结点还可以存储多个元素,那这样以来,这个树的结构就可以很庞大了。
所谓m阶B-树,即m路平衡搜索树(m>=2),也叫(ceil(m/2),m)-树,其有以下特点(设n为关键码,即n+1为分支数):
1.除根以外的节点满足:n+1>=ceil(m/2)|n+1<=m;
2.非空的B-树,根节点满足:n+1>=2|n+1<=m(即最小为一个关键码)。
3.外部节点同属于底层,深度一致(即各节点分支状态相同,要么都不存在,要么都存在)。
4、外部节点远大于B树高度。
B+树似乎是在B-树的基础之上,将叶子结点的结构做成一条链,我大概是这么理解的?说实话这个研究的不是很明白。。。。而且我真没想清楚这个要怎么实现。。。
具体参考:http://www.360doc.com/content/09/1101/10/313373_8200150.shtml
2. 哈希查找
这个呢,不是特别难,但是哪个什么二次探测再散列我上课也没有学明白,我现在重新学习一下。
如果是哈希查找,总会遇到两个元素要争夺一个地址的情况,称为堆积。如何去解决堆积呢,其实就是利用散列地址了,发生了冲突,那么就去寻找下一个空的散列地址,只要散列表足够大,那就总有空的散列地址能找到。那么这个移动的量di,称之为增量di。
在线性散列中,这个增量的取值就是0,1,2,3……
二次探测再散列
在二次探测再散列里面,这个di增量的取值是di = 1 2 , -12 , 22 , -22 , 32 , -32 , ... , k2 , -k2
具体参考:https://blog.csdn.net/qq_27093465/article/details/52348366?_t_t_t=0.24849042831920087
这里面的散列写的还挺详细的。
二、微机
微机的话,整理了一个思维导图,不过是用的XMIND,我不知道怎么放到网络上,给自己看一眼,鼓励一下自己就好了。