高阶数据结构
文章平均质量分 88
介绍高阶数据结构
penguin_bark
坚持写好文
展开
-
哈夫曼树和哈夫曼编码
其中我么你发现A 出现三次,B出现一次,C出现两次,D出现一次。那么我们统计出现次数为:3,2,1,1。那么我们得到了所有字符的编码。现在统计次数变为3,2,2。同时我们定义左为0,右为1。现在需要对下列字符编码。我们将1,1组成一个树。我们将2,2组成一个树。现在统计次数变为3,4。我们将3,4组成一个树。原创 2024-10-12 16:17:57 · 133 阅读 · 0 评论 -
【C++高阶数据结构】跳表(skiplist)
🏆 🌈⭐️⚡若有帮助可以【关注】,大家一起进步!原创 2023-01-07 16:17:18 · 762 阅读 · 11 评论 -
【C++高阶数据结构】B树、B+树、B*树
🏆 🌈⭐️⚡若有帮助可以【关注】,大家一起进步!原创 2023-01-06 19:50:57 · 837 阅读 · 12 评论 -
【C++高阶数据结构】LRU
🌈⭐️⚡若有帮助可以【关注】,大家一起进步!原创 2023-01-05 16:28:54 · 462 阅读 · 0 评论 -
【C++高阶数据结构】图
🏆 🌈⭐️⚡若有帮助可以【关注++】,大家一起进步!原创 2023-01-04 19:08:24 · 936 阅读 · 18 评论 -
【C++高阶数据结构】并查集
🏆 🌈⭐️⚡若有帮助可以【关注++】,大家一起进步!原创 2022-12-25 18:06:47 · 468 阅读 · 10 评论 -
【初阶与进阶C++详解】第十六篇:AVL树-平衡搜索二叉树(定义+插入+旋转+验证)
这里节点是一个三叉链,里面存放了元素的数据和该节点此时的平衡因子。左右子树高度相同 0左子树高于右子树 -1右子树高于左子树 1//键值对 AVLTreeNode < K , V > * _left;//左子树 AVLTreeNode < K , V > * _right;//右子树 AVLTreeNode < K , V > * _parent;//父节点 // 右子树-左子树的高度差 int _bf;原创 2022-09-29 15:21:18 · 967 阅读 · 6 评论 -
【初阶与进阶C++详解】第十五篇:二叉树搜索树(操作+实现+应用KVL+性能+习题)
🏆 🌈⭐️⚡若有帮助可以【关注++】,大家一起进步!原创 2022-09-24 14:26:53 · 1103 阅读 · 10 评论 -
【初阶与进阶C++详解】第十九篇:哈希(哈希函数+哈希冲突+哈希表+哈希桶)
总结:线性探测缺点是数据堆积,二次探测可以减轻这种情况,闭散列最大的缺陷就是空间利用率不高。原创 2022-10-04 15:09:07 · 1458 阅读 · 11 评论 -
【初阶与进阶C++详解】第十八篇:map_set(map_set使用+multiset_multimap使用+模拟map_set)
1.set是按照一定次序存储元素的容器2.在set中,元素的value也标识它(value就是key,类型为T),并且每个value必须是唯一的。set中的元素不能在容器中修改(元素总是const),但是可以从容器中插入或删除它们。3.在内部,set中的元素总是按照其内部比较对象(类型比较)所指示的特定严格弱排序准则进行排序。4.set容器通过key访问单个元素的速度通常比unordered_set容器慢,但它们允许根据顺序对子集进行直接迭代。5.set在底层是用红黑树实现的。原创 2022-10-02 14:36:44 · 947 阅读 · 2 评论 -
【初阶与进阶C++详解】第十七篇:红黑树(插入+验证+查找)
本质一样是二叉搜索树,和AVL树不同的是,增加了颜色的定义//枚举,定义颜色 enum Color {//节点类 template < class K , class V > struct RBTreeNode {原创 2022-09-29 20:17:54 · 807 阅读 · 5 评论 -
【初阶与进阶C++详解】第二十篇:unordered_map和unordered_set(接口使用+模拟实现)
unordered_map是存储键值对((KV模型)的关联式容器,其允许通过keys快速的索引到与其对应的value。在unordered_map中,键值通常用于惟一地标识元素,而映射值是一个对象,其内容与此键关联。键和映射值的类型可能不同。在内部,unordered_map没有对按照任何特定的顺序排序(无序), 为了能在常数范围内找到key所对应的value,unordered_map将相同哈希值的键值对放在相同的桶中。原创 2022-10-05 09:22:50 · 912 阅读 · 15 评论