数据结构
文章平均质量分 81
万我.
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
数据结构进阶 详谈红黑树
红黑树是一种自平衡二叉搜索树,通过颜色约束(红/黑)确保最长路径不超过最短路径的2倍。其核心规则包括:根节点为黑、红节点子节点必黑、任意路径黑节点数相同。插入时需处理三种情况:变色(父叔红)、单旋(父红叔黑且同侧)、双旋(父红叔黑且异侧)。相比AVL树,红黑树平衡要求更宽松,旋转次数更少,时间复杂度仍为O(logN)。验证时需检查颜色规则和路径黑节点数一致性。红黑树在插入、查找等操作上高效稳定,广泛应用于STL等库中。原创 2025-08-08 16:51:34 · 1246 阅读 · 0 评论 -
数据结构进阶 详谈AVL树
AVL树是一种自平衡二叉搜索树,由Adelson-Velsky和Landis在1962年提出。它通过平衡因子(右子树高度减左子树高度)控制在[-1,1]范围内来维持平衡。当插入或删除节点导致不平衡(平衡因子=±2)时,通过四种旋转操作(左旋、右旋、左右双旋、右左双旋)恢复平衡。AVL树保证了最坏情况下的查找、插入和删除操作时间复杂度为O(logN)。本文详细介绍了AVL树的结构定义、插入操作、平衡因子更新规则、四种旋转操作的实现原理及代码,并提供了平衡检测方法。相比普通二叉搜索树原创 2025-08-07 20:19:49 · 903 阅读 · 0 评论 -
数据结构 详谈栈和队列
本文介绍了栈和队列两种重要的数据结构。栈遵循后进先出(LIFO)原则,支持压栈和出栈操作,可使用数组或链表实现动态增长。队列遵循先进先出(FIFO)原则,包含队头和队尾操作,链表实现更优。文章详细说明了两种结构的定义、基本操作接口(初始化、插入、删除等)以及实现方式,并提及循环队列在实际应用中的重要性。原创 2025-08-07 06:00:00 · 533 阅读 · 0 评论 -
数据结构进阶 一文详谈二叉搜索树(C++)
本文介绍了二叉搜索树(BST)的概念、操作和实现。主要内容包括:1)BST的定义:左子树节点值≤根节点值,右子树节点值≥根节点值;2)基本操作:插入、查找和删除(包括四种删除情况);3)性能分析:最优时间复杂度O(logN),最差O(N);4)应用场景:key-only和key-value两种模式,分别适用于存在性检查和映射关系存储;5)代码实现,包括模板类和具体操作方法。文章还指出BST的局限性,为后续介绍平衡二叉树(AVL树、红黑树等)做铺垫。原创 2025-07-28 07:41:06 · 1137 阅读 · 0 评论 -
数据结构 双向链表
本文介绍了双向链表的结构与实现。双向链表相比单链表增加了前驱指针,支持双向遍历。其实现采用带头节点的结构(哨兵位),提供了初始化、销毁、插入删除等基本操作接口。与顺序表相比,双向链表在插入删除时效率更高(O(1)),但随机访问效率较低(O(N));而顺序表空间连续,支持随机访问但插入需移动元素。实际开发中双向链表应用更广泛,因其在动态操作上的优势更符合常见需求。原创 2025-07-26 17:42:27 · 389 阅读 · 0 评论 -
数据结构 详谈单链表
本文介绍了单链表的概念、结构及实现。单链表是一种非连续存储的线性结构,通过指针链接实现逻辑顺序。文中用火车车厢比喻链表节点,每个节点包含数据和指向下一节点的指针。与顺序表不同,链表节点独立申请内存空间,物理上不一定连续。文章详细说明了单链表的结构体定义和基本操作接口,包括插入、删除、查找等函数。最后指出实际应用中最常用的两种链表结构:无头单向非循环链表(常用于子结构)和带头双向循环链表(存储数据更高效)。单链表是数据结构学习中的重要基础,也是面试笔试中的常见考点。原创 2025-07-26 17:31:16 · 641 阅读 · 0 评论 -
数据结构 详谈什么是数据结构及顺序表
数据结构是计算机存储和组织数据的方式,由数据元素及其关系构成。数据可以是数值、用户信息或网页内容等,结构则是组织数据的方式,如数组能有效管理大量数据。数据结构不仅能存储数据,还能提高查找和操作效率。基础数据结构如数组在复杂场景下可能效率不足,因此需要更高级的结构如顺序表。顺序表是线性表的一种,底层基于数组,分为静态和动态两种类型,动态顺序表通过扩容解决空间浪费问题。顺序表提供增删改查等接口,便于数据管理。原创 2025-07-24 17:52:22 · 675 阅读 · 0 评论
分享