数据结构
文章平均质量分 97
学习数据结构的知识笔记
边疆.
无人扶我青云志,我自踏雪至山巅
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【C++】哈希和哈希封装unordered_map、unordered_set
本文介绍了哈希表的基本概念、实现方法及其在封装unordered_map和unordered_set中的应用。主要内容包括: 哈希概念:通过哈希函数建立关键字与存储位置的映射关系,实现快速查找。 哈希冲突处理:介绍了除法散列法、乘法散列法等哈希函数,以及开放定址法(线性探测、二次探测)和链地址法两种冲突解决方法。 哈希表实现:详细讲解了基于开放定址法的哈希表数据结构设计,包括状态枚举、扩容策略等关键实现细节。 负载因子:解释了负载因子对哈希表性能的影响,建议控制在0.7左右。原创 2025-10-06 16:19:17 · 1081 阅读 · 0 评论 -
【C++】使用红黑树封装map和set
本文将介绍红黑树如何封装实现map和set。通过分析STL源码框架,发现红黑树通过泛型设计,由第二个模板参数Value决定存储的数据类型,实现set和map的复用。关键在于引入KeyOfT仿函数来获取T中的Key值进行比较。文章详细讲解了insert操作的实现过程,包括节点插入、颜色调整等步骤。通过这种设计,红黑树可以同时支持key搜索场景(set)和key/value搜索场景(map)。原创 2025-10-03 19:30:28 · 583 阅读 · 0 评论 -
【C++】红黑树的实现
本文介绍了红黑树的概念、规则及实现方法。红黑树是一种接近平衡的二叉搜索树,通过颜色约束(根节点为黑色、无连续红节点、路径黑节点数相同)确保最长路径不超过最短路径的2倍,时间复杂度为O(logN)。其插入操作分为三种情况处理:变色(当叔节点为红)、单旋+变色(当叔节点为黑且LL/RR型)和双旋+变色(当叔节点为黑且LR/RL型)。红黑树相比AVL树旋转次数更少,效率相当,适合需要高效查找的场景。原创 2025-10-01 01:20:39 · 692 阅读 · 0 评论 -
【C++】AVL树(平衡二叉搜索树)的实现
本文介绍了AVL树的基本概念和实现方法。AVL树是一种自平衡二叉搜索树,通过控制左右子树高度差不超过1来保持平衡。文章详细讲解了AVL树节点的定义、插入操作的过程以及平衡因子的更新规则。重点分析了四种旋转情况(左单旋、右单旋、左右双旋、右左双旋)来调整失衡的AVL树,保持其平衡性。AVL树通过这种平衡机制,将搜索时间复杂度控制在O(logN)级别,相比普通二叉搜索树有了本质提升。文中还提供了部分C++实现代码,展示了AVL树的核心操作逻辑。原创 2025-09-26 17:47:07 · 931 阅读 · 0 评论 -
数据结构:内部排序
讲解排序的概念和分类,排序的稳定性等概念,再详细介绍了八大排序的实现过程和源代码,最后对比了八大排序的排序性能和算法复杂度以及稳定性原创 2024-09-21 22:51:29 · 1895 阅读 · 9 评论 -
数据结构:二叉树(链式结构)
主要介绍了二叉树的链式结构,还有创建二叉树和二叉树相关功能的详细说明和代码实现,最后附带源码原创 2024-07-31 20:30:59 · 1646 阅读 · 0 评论 -
数据结构:二叉树(堆)的顺序存储
主要介绍了二叉树和堆的概念和结构,可知堆是完全二叉树,还有堆的顺序存储实现和堆的应用(堆排序等等)原创 2024-07-28 21:39:48 · 1504 阅读 · 5 评论 -
数据结构:队列(顺序存储和链式存储)
主要介绍了队列的概念和结构,还有队列的顺序存储实现和链式存储实现的详细说明和代码实现,最后再对比队列的顺序存储结构和链式存储结构的优缺点原创 2024-07-25 17:00:18 · 2961 阅读 · 6 评论 -
数据结构:栈
主要介绍了栈的基本概念和结构,然后再详细描述了栈的顺序存储实现和链式存储实现的方法和实现代码,最后再对比栈的顺序存储和链式存储的区别。原创 2024-07-23 16:53:03 · 2269 阅读 · 6 评论 -
数据结构—双向链表
先介绍双向链表与单链表的区别,再详细描述各种接口功能的实现和代码实现,最后对比顺序表和链表的区别,再贴上实现双向链表的源代码原创 2024-07-19 13:12:54 · 1620 阅读 · 4 评论 -
数据结构—单链表
主要介绍单链表的概念和对比顺序表的优缺点,还有单链表的接口实现代码的详细解释和源代码原创 2024-07-15 22:43:37 · 1991 阅读 · 6 评论 -
数据结构—顺序表
线性表(linear list)是n个具有相同特性的数据元素的有限序列。它是一种在实际中广泛使用的数据结构,其数据元素之间的关系是一对一的关系,即除了第一个和最后一个数据元素之外,其它数据元素都是首尾相接的。线性表在逻辑上是线性结构,也就说是连续的一条直线。但是在物理结构上并不一定是连续的, 线性表在物理上存储时,通常以数组和链式结构的形式存储。顺序存储结构和链式存储结构。顺序表(Sequential List)是线性表的一种顺序存储结构,它使用一段连续的存储单元依次存储线性表的数据元素。原创 2024-07-11 20:13:17 · 1700 阅读 · 2 评论
分享