自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(7)
  • 收藏
  • 关注

原创 数据结构——B+树(附C++实现代码)

一个m每一个节点最多有m个子节点每一个非叶子节点(除根节点)最少有 ⌈m/2⌉ 个子节点如果根节点不是叶子节点,那么它至少有两个子节点有k个子节点的非叶子节点拥有k− 1 个键所有的叶子节点都在同一层所有的键值对(即数据记录)都存储在叶子节点中,非叶子节点仅存储键(索引)用于路由。所有的叶子节点通过指针连接成一个有序链表,便于范围查询和顺序访问。非叶子节点中的键也会出现在叶子节点中,作为索引。注:由于m=2时B+树的实际意义并不大,因此本文实现的代码仅支持m>=3的B+树。

2025-02-04 13:15:31 2220

原创 数据结构——B树(附C++实现代码)

一个m每一个节点最多有m个子节点每一个非叶子节点(除根节点)最少有 ⌈m/2⌉ 个子节点如果根节点不是叶子节点,那么它至少有两个子节点有k个子节点的非叶子节点拥有k− 1 个键所有的叶子节点都在同一层每一个内部节点的键将节点的子树分开。例如,如果一个内部节点有3个子节点(子树),那么它就必须有两个键:a1 和a2。左边子树的所有值都必须小于a1 ,中间子树的所有值都必须在a1 和a2 之间,右边子树的所有值都必须大于a2。

2025-02-01 23:10:14 2342

原创 数据结构——跳表(附C++实现代码)

跳表(Skip List)是一种可以用来快速查找、添加和删除数据的数据结构,它通过维护一个多层次的链表系统来实现高效的搜索性能。每个层次中的链表都是下一个层次链表的“快进”版本,最底层包含所有的元素,而越往上的层次则包含了越少的元素,这些元素是从下层中随机选择出来的。节点名类型描述MAXL跳表支持的最大层高P每一层上升的概率 1 / PsizeKey节点键值,允许重复(Redis中zset的score成员变量)levelValue。

2025-01-28 00:31:22 1681

原创 数据结构——AVL树(附C++实现代码)

AVL树是一种自平衡二叉搜索树,得名于其发明者G.M. Adelson-Velsky和Evgenii Landis。在AVL树中,两个子树的高度差(平衡因子)最多为1,因此它保持了相对的平衡。这种平衡性质确保了基本操作如添加、删除和查找等的时间复杂度均为O(log n),其中n是节点数。Key key;// 更新树的高度// 计算平衡因子。

2025-01-27 11:10:12 1002

原创 数据结构——红黑树(附C++实现代码)

红黑树是一种自平衡的二叉搜索树。每个节点额外存储了一个color字段(“RED” or “BLACK”),用于确保树在插入和删除时保持平衡private:......Node *root;// 获得兄弟节点// 获得叔叔节点// 获得祖父节点// 判断当前不平衡类型(LL,LR,RL,RR)-> (0,1,2,3)0 : 1);0 : 2);

2025-01-26 20:47:08 900

原创 从前序与中序遍历序列构造二叉树的两种思路

最近在leetcode上刷到了一道题105.从前序与中序遍历序列构造二叉树给定两个整数数组preorder和inorder,其中preorder是二叉树的inorder是同一棵树的,请构造二叉树并返回其根节点。

2025-01-22 23:55:10 882

原创 排序算法杂谈

排序算法,是数据结构中绕不开的话题,本次排序算法杂谈旨在分析各种排序算法的思想,并给出C++代码实现,以及分析其时间和空间复杂度注:本次排序算法中被排序的对象均为数组,默认从小到大进行排序一般而言,排序算法函数的格式为voidfunc1(vector&arr),其中arr表示需要排序的数组。

2025-01-20 13:13:09 839

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除