摘要: 一、 索引优先队列 上一章节的数据结构(八):优先队列-大小优先中,能够快速的从队列中取出最大最小值并删除,但有个缺点,就是无法通过索引快速的找到某个值,并且修改它,对于能快速根据索引查找到值的需求 我们使用索引优先队列来实现。 二、 最小索引优先队列思路 步骤一:实现索引优先队列,直观的想法是对数 阅读全文
posted @ 2020-11-29 16:09 纪煜楷 阅读(320) 评论(0) 推荐(0) 编辑
摘要: 一、 优先队列的概述 在前面的数据结构(三):线性表-栈,队列中记录到,队列是先进先出的结构,元素在队列末端添加,在队列前头删除,若使用该队列的数据结构,则当要找出队列中的最大最小值时,需要遍历队列 对每个元素做比较后得出,这样在实际的生产应用中效率是很低的,这时就需要有一种队列,能快捷的获取队列中 阅读全文
posted @ 2020-11-29 16:06 纪煜楷 阅读(2372) 评论(0) 推荐(0) 编辑
摘要: 一、 堆的概述 堆是计算机中一种重要的数据结构,它是完全二叉树的数组体现。 二、 堆的特性 2.1、堆是完全二叉树 堆是完全二叉树的数据结构,除了树的最后一层结点不需要是满的,其他各层级从左到右都必须是满的,如果最后一层结点没有满,那么要求是左满右不满 2.2、堆用数组来实现 堆是用数组来存储上述完 阅读全文
posted @ 2020-11-29 16:00 纪煜楷 阅读(908) 评论(0) 推荐(0) 编辑
摘要: 一、 B-树概述 B-树是在2-3树的基础上,一个结点允许多个键(>=3)存在的树状数据结构。 二、 B-树特性 B-树允许一个结点存在>=3个键 一颗M阶的B-树,存在M-1层的树层级 一颗M阶的B-树,每个结点最多有M-1个键,并且升序排列 每个结点最多能有M个子结点 根结点至少有两个子结点 如 阅读全文
posted @ 2020-11-29 15:50 纪煜楷 阅读(613) 评论(0) 推荐(0) 编辑
摘要: 一、 红黑树概述 红黑树是对2-3树的编码,即用二叉树结点单键单值的形式来表示2-3树,具体措施是对两个结点相连的链接标记颜色。 红链接:将相连的两个2-结点链接起来表示一个3-结点,即我们将3-结点表示为由一条左斜的红色链接相连的两个2-结点 黑链接:即普通的2-结点 二、 红黑树特性 红黑树是存 阅读全文
posted @ 2020-11-29 15:41 纪煜楷 阅读(311) 评论(0) 推荐(0) 编辑
摘要: 一、 二叉平衡树的时间复杂度 在数据结构(五):树中的二叉查找树中,我们发现当二叉树平衡时,我们查找一个元素需要遍历的层级是log(N+1),按照大O算法可得时间复杂度为logN,这种查找比链表和数组的O(N)算法要 高效得多。 但是当二叉树不平衡时,我们发现它的查找效率依旧是O(N),比如如下情况 阅读全文
posted @ 2020-11-29 15:33 纪煜楷 阅读(672) 评论(0) 推荐(0) 编辑