数据结构
小泽十一章
这个作者很懒,什么都没留下…
展开
-
B树及B+树比较
B树B树中一个结点允许多余两个key的存在。B树是一种树状数据结构,他能够存储数据,对其进行排序并允许以O(logn)的时间复杂度进行查找,顺序读取,插入和删除等操作。B树中允许一个结点包含多个key可以使3个,4个,5个甚至更多,并不确定,需要看具体的实现。现在我们选择一个参数M,来构造一个B树,我们可以把他看做是M阶的B树,那么该树会具有如下特点:每个结点最多M-1个key,并且以升序排序。每个结点最多能有M个子结点。根结点至少有两个子结点。实际应用中B树的阶数一般都比较大(通常大于1原创 2020-09-28 15:34:23 · 257 阅读 · 0 评论 -
红黑树的原理及python简单实现
了解红黑树之前需要先了解一种树:2-3查找树。2-3查找树为了保证二叉查找树的平衡性,需要一些灵活性,因为我们允许树中的一个结点保存多个键。确切的说,将一棵标准的二叉查找树中的结点称为2-结点(含有一个键和两条链),而现在我们引入3-结点,它含有两个键和三条链。2-结点和3-结点中的每条链都对应着其中保存的键所分割产生的一个区间。定义:一颗2-3查找树要么为空,要么满足下面两个要求:2-结点:含有一个键(及其对应的值)和两条链,左连接指向2-3树中的键都小于该结点,右连接指向的2-3树中的键都大于原创 2020-09-28 15:14:44 · 697 阅读 · 0 评论 -
使用python创建堆以及实现堆排序
堆是计算机科学中一类特殊的数据结构的总称,堆通常可以被看做是一颗完全二叉树的数组对象。堆的特性它是完全二叉树,除了树的最后一层结点不需要是满的,其他的每一层从左到右都是满的,如果最后一层结点不是满的,那么要求坐满右不满。他通常用数组来实现。具体方法就是讲二叉树的结点按照层级顺序放入数组中,根结点的在位置1,他的子结点在位置2和3,而子结点的子结点分别在位置4,5,6和7,以此类推。如果一个结点的位置为k,则它的父结点的位置为k/2,而他的两个子结点的位置分别为2k和2k+1。这样,在不使用指针的情况原创 2020-09-22 21:54:20 · 1281 阅读 · 1 评论 -
python实现二叉树的创建与遍历
树是由n(n>=1)个有限结点组成一个具有层次关系的集合,把它叫做树是因为它看起来像一颗倒挂的树,也就是说它是根朝上,而叶朝下的。二叉树特点每个结点有0个或多个子结点。没有父结点的结点成为根结点。每一个非根结点只有一个父结点。每个结点及其后代结点整体上可以看做一棵树,称为当前结点的父结点的一个字树。树的相关术语结点的度:一个结点含有的子树的个数称为结点的度。叶结点:度为0的结点称为叶结点,也可以叫做终端结点。分支节点:度不为0的结点成为分支结点,也可以叫做非终端结点。结点的层原创 2020-09-21 21:49:06 · 915 阅读 · 0 评论