摘要: 1. 并查集 1 #ifndef _DisjSet_H 2 #define _DisjSet_H 3 4 const int NumSets = 1000; 5 typedef int DisjSet[NumSets + 1]; 6 typedef int SetType; 7 typedef in 阅读全文
posted @ 2021-06-15 22:37 jckeep 阅读(61) 评论(0) 推荐(1) 编辑
摘要: 这次的博客分享一下我最喜欢的两棵树的实现 2021上半年,我所学的数据结构中,最喜欢的为红黑树以及B树(B+树暂时还没开始学,但B+树更加强大,也许过一阵子能够将他用Linux文件系统实现) 恍恍惚惚过了一个学期,从最开始链表也写不明白,到了现在能够手写多种常用的数据结构,例如优先队列,左高树,伸展 阅读全文
posted @ 2021-05-18 16:42 jckeep 阅读(83) 评论(0) 推荐(0) 编辑
摘要: 写这篇博客的目的主要是详细分析随机构建二叉搜索树,因为下一篇博客主要讲Treap,证明需要用到随机构建二叉搜索树,Treap是在学习完红黑树之后做的13-4的思考题,第一次看着概念独立写出一种树不看别人的代码,并且加上证明。对于红黑树的博客,也打算写,毕竟红黑树的分析算是一种比较简单的,分析红黑树完 阅读全文
posted @ 2021-05-14 23:09 jckeep 阅读(211) 评论(0) 推荐(0) 编辑
摘要: 最近鸿蒙系统大火,趁着热度,学习了一下鸿蒙内核的kernel/los_list.h的源码,纯属个人爱好,学Linux总得看点内核汲取汲取营养,下面源码有兴趣尝试conainer_of的建议Linux系统下编译运行,windows把linux/kernel.h去掉即可,头文件linux/kernel. 阅读全文
posted @ 2021-05-10 23:16 jckeep 阅读(95) 评论(0) 推荐(0) 编辑
摘要: 思考:二叉堆无疑是一种优越的数据结构,但遇到需要合并两种堆是我们该如何操作呢?是花费O(n) 的时间界重新建堆吗?如果需要频繁合并又该怎么办?这个时间界将达到恐怖的O(n2), 这无疑是不可接受的。为了解决这个问题,于是我们引入一种拓展到二叉树,左高树,他能将堆的合并降低到惊人的O(log2n)。 阅读全文
posted @ 2021-03-27 15:12 jckeep 阅读(147) 评论(0) 推荐(0) 编辑
摘要: 本博客不讲解具体的原理,仅仅给出一种优先队列较为一般化的,可重用性更高的一种实现方法。我所希望的是能过带来一种与使用STL相同的使用体验,因为学习了STL源码之后深受STL代码的影响,对每个ADT都希望能过给出一种高效,可重用,更一般的实现方法,即使我的代码在STL的priority_queue面前 阅读全文
posted @ 2021-03-26 15:41 jckeep 阅读(861) 评论(0) 推荐(0) 编辑
摘要: 今天是正月初一,也是只能默默的在这里写博客,情绪烦乱,刷题老是走神,最后决定写点博客来巩固一下之前所学,让自己放几天假,春节的张灯结彩,热闹非凡似乎与我格格不入,让这二叉搜索树陪我熬过去吧,那么我们来看二叉搜索树的ADT。 #ifndef BinarySearchTree_H #define Bin 阅读全文
posted @ 2021-02-12 11:25 jckeep 阅读(56) 评论(0) 推荐(0) 编辑
摘要: 这同样也是我上个星期学的内容,这个星期写博客来回顾一下,不然难免会忘记,○( ^皿^)っHiahiahia… 线段树是一种弄个高效的对区间更新以及询问的数据结构,包括询问数组一段区间的和,或一段区间的最大最小值,或者区间的最小公因数等等。并能将正常操作的O(n)的复杂度降低到O(logn),这无疑是 阅读全文
posted @ 2021-02-11 12:22 jckeep 阅读(32) 评论(0) 推荐(0) 编辑
摘要: 这是上一周做的题,到这周才开始写解题报告,属实有点晚,不过恰好这周休息,哈哈哈~ 首先是div3的专题最小生成树,我的上一篇博客( •̀ ω •́ )y已经仔细讲解的最小生成树的Kruskal算法,如果不清楚的可以看我的上一篇博客,这里我们直接用Kruskal来解题。因为Kruskal核心的数据结构 阅读全文
posted @ 2021-02-10 20:35 jckeep 阅读(58) 评论(0) 推荐(0) 编辑
摘要: 这个专题我们讨论的问题是在无向图中寻找一棵最小生成树(Minimum Spanning Tree)。这个问题对于有向图的讨论也是有意义的,只不过算法更加复杂,这里我们将只讨论无向图。最小生成树存在当且仅当图是连通的。此处我们不对概念做过多的介绍,直接介绍两种主要的算法: 1.Kruskal算法 2. 阅读全文
posted @ 2021-02-02 21:41 jckeep 阅读(21) 评论(0) 推荐(0) 编辑