数据结构与算法
文章平均质量分 94
我将自己所学数据结构经验与大家分享!
一位虔诚的软微信徒
一个励志想考上北大软微的朝圣者,圣软微的虔诚信徒!我想说:软憨无罪!!!
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
一文带你吃透八大排序!(C语言超详解版 + 快排三路划分优化加餐 + 工业级自省排序加餐解析!)
欢迎来到我的频道码云连接。原创 2026-04-23 21:40:48 · 409 阅读 · 1 评论 -
算法竞赛有关数据结构的补充(3)—— 二叉树、堆和哈希表的静态实现(包括红黑树和AVL树动态实现)
二叉树是一种特殊的树型结构,它的特点是每个结点至多只有 2 棵子树(即二叉树中不存在度大于 2 的结点),并且二叉树的子树有左右之分,其次序不能任意颠倒。二叉的意思是这种树的每一个结点最多只有两个孩子结点。注意这里是最多有两个孩子,也可能没有孩子或者是只有一个孩子。注意:二叉树结点的两个孩子,一个被称为左孩子,一个被称为右孩子。其顺序是固定的,就像人的左手和右手,不能颠倒混淆。⼀棵⼆叉树的所有⾮叶⼦节点都存在左右孩⼦并且所有叶⼦节点都在同⼀层上,那么这棵树就称为满⼆叉树。对一棵树有 n 个结点的二叉树按层原创 2026-03-27 00:00:04 · 447 阅读 · 0 评论 -
算法竞赛有关数据结构的补充(2)--- 栈、队列的静态实现和树的实现
树型结构是一类重要的非线性数据结构。有一个特殊的结点,称为根结点,根结点没有前驱结点。除根结点外,其余结点被分成 (M) 个互不相交的集合 (T_1、T_2、…、T_m),其中每一个集合 (T) 又是一棵树,称这棵树为根节点的子树。因此,树是递归定义的。原创 2026-03-19 21:45:12 · 412 阅读 · 0 评论 -
算法竞赛有关数据结构的补充---顺序表、单、双向链表的静态实现
在算法竞赛中,我们主要关⼼的其实是时间开销,空间上是基本够⽤的。因此,定义⼀个超⼤的静态数组来解决问题是完全可以接受的。因此,关于顺序表,采⽤的就是静态实现的⽅式。当然顺序看着比较简单 我再插入一个C 把D插到BC中间。解法⼆:如果存储的值数据范围不⼤,可以⽤哈希表优化。直接⽆视 prev 数组,与单链表的遍历⽅式⼀致。根据之前的经验可知,最后修改p的前驱指针即可。直接使⽤ mp 数组优化了。解法⼀:遍历整个链表即可。原创 2026-03-09 19:32:23 · 200 阅读 · 0 评论 -
哈希表(C++详解版&&线性探测法、哈希桶的实现)
欢迎来到我的频道专栏作家码云连接。原创 2026-01-21 17:13:19 · 786 阅读 · 1 评论 -
红黑树(C++实现)
特性说明作用定义一组命名的整型常量红黑树用途表示节点颜色(REDBLACK传统 enum简单但可能隐式转int,有命名冲突风险enum class类型安全、作用域隔离,C++ 推荐用法在红黑树实现中,使用enum(尤其是enum class)是标准且清晰的做法。原创 2026-01-03 15:08:27 · 1034 阅读 · 0 评论 -
AVL树(C++详解版)
此处采用。原创 2025-12-30 15:03:54 · 726 阅读 · 0 评论 -
树的概念详解、堆的实现、堆排序和堆的top-k问题(万字大章,C语言详解版)
讲解 树 堆 堆排 和 topk问题原创 2025-06-15 17:47:38 · 1367 阅读 · 1 评论 -
链式二叉树详解(包含4种遍历和一些常用功能&&C语言详解版&& 万字大章)
用链表来表示一棵二叉树,即用链来指示元素的逻辑关系。 通常的方法是链表中每个结点由三个域组数据域和左右指针域,左右指针分别用来给出该结点左孩子和右孩子所在的链结点的存储地址,其结构如下:1.2 二叉树结点形式的拓展其实 二叉树结点不光存在三域二叉树结点(二叉链),同时还存在四域二叉树结点(三叉链),而多出来的结点就是parent的结点,指向的是其父亲结点:二叉树的创建方式比较复杂,为了更好的步入到二叉树内容中,我们先手动创建一棵链式二叉树最终我们将成功创造出这样的一棵二叉树回顾二叉树的概念,二叉树原创 2025-06-27 18:24:30 · 860 阅读 · 1 评论 -
队列的实现(C语言详解版)
概念:只允许在一端进行插入数据操作,在另一端进行删除数据操作的特殊线性表,队列具有先进先出FIFO(First In First Out)入队列:进行插入操作的一端称为队尾出队列:进行删除操作的一端称为队头。原创 2025-05-21 21:38:58 · 878 阅读 · 0 评论 -
单链表的实现(C语言超详解版)
/方便存储数据类型的删改//存储的数据//指向下一个节点的指针制作不易 给个三连 阿里嘎多!!原创 2025-05-05 15:09:54 · 686 阅读 · 2 评论 -
数据结构顺序表(c语言超级详细版)
/存储的数据int size;//有效数据的个数//空间容量}SL;原创 2025-04-22 20:17:11 · 873 阅读 · 1 评论 -
栈的实现(C语言详解版)
栈:一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端称为栈顶,另一端称为栈底。栈中的数据元素遵守后进先出LIFO(Last In First Out)的原则。压栈:栈的插入操作叫做进栈/压栈/入栈,入数据在栈顶。出栈:栈的删除操作叫做出栈。出数据也在栈顶。栈是一个一种后进先出的一种数据结构。原创 2025-05-21 11:08:30 · 1233 阅读 · 1 评论 -
二叉搜索树(C++实现)
场景2: 商场无人值守车库,入口进场时扫描车牌,记录车牌和入场时间,出口离场时,扫描车牌,查找入场时间,用当前时间-入场时间计算出停车时长,计算出停车费用,缴费后抬杆,车辆离场,删除入场时间和车牌。场景3: 统计一篇文章中单词出现的次数,读取一个单词,查找单词是否存在,不存在这个说明第一次出现,(单词加入树),单词存在,则++单词对应的次数。场景2: 检查一篇英文文章单词拼写是否正确,将词库中所有单词放入二叉搜索树,读取文章中的单词,查找是否在二叉搜索树中,不在则波浪线标红提示。原创 2025-12-08 21:03:21 · 1080 阅读 · 5 评论
分享