我们今天要聊一个比较硬的话题: 一个 / 传说中的 / 惊天动地的 / 牛逼的 / 大家都听说过的 / 却又很少实际深入接触到的 / 但又基本每天都在使用的数据结构。(大家注意看上一句话的定语)
我记得我最先接触B树是在大学学数据结构的时候,那会儿有一章是专门讲B树的。但是那一章老师说是选学,所以不讲…… 我自己下来把那一章看了,看的有点云里雾里。后来学数据库原理,又提到了B+树,才去又好好的学习了一遍。
但是也是因为平时很少直接使用这个数据结构(比起数组、链表、Hash等等来讲),反反复复的看,反反复复的忘。在今天写这篇文章之前,老王又拿起了「算法导论」重新review了一遍。
#同#
B树和B+树其实都是平衡搜索树。这里要脑补一下平衡搜索树的概念:这个词划分一下就是 平衡+搜索+树。也就是说,他首先是一棵树,其次能搜索,再次他是平衡的。大家耳熟能详的一个概念:二叉平衡搜索树。(详细的大家可以在百度上搜一下定义,或者拿起那本厚实的「算法导论」看看)。
#异#
但是B树和B+树却有不同的地方。就是这些不同的地方,决定了他们的用处可能不一样。
我画了一个不太漂亮的B树的