
数据结构
文章平均质量分 88
销声匿迹001
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
平衡二叉搜索树--红黑树
红黑树是一种高效的自平衡二叉查找树,通过五个核心规则(节点着色、根节点和叶子节点为黑、红节点不连续、路径黑高相同)保证平衡性。其关键操作(查找、插入、删除)的时间复杂度均为O(logn)。实现时采用颜色标记和旋转操作(左旋/右旋)来维护平衡,插入和删除操作需根据不同情况(如叔叔节点颜色、节点分布模式LL/LR/RR/RL)进行相应调整。红黑树在动态数据场景中表现优异,比AVL树更适合频繁更新的应用。文中详细展示了C++实现代码,包括节点结构、旋转函数以及插入删除的调整逻辑。原创 2025-07-09 19:01:14 · 496 阅读 · 0 评论 -
平衡二叉搜索树——AVL树
AVL树是一种自平衡二叉搜索树,由Adelson-Velskii和Landis提出,通过动态调整树结构确保任意节点的左右子树高度差不超过1。本文详细介绍了AVL树的实现方法,包括结构体设计、基本函数(初始化、插入、查找、删除等)和工具函数(获取高度、计算平衡因子)。重点阐述了四种旋转操作(LL、RR、LR、RL)的实现原理及其在维护平衡中的应用。文章提供了完整的C语言代码实现,包含递归和非递归两种版本,涉及节点插入后的平衡调整策略和删除操作的特殊处理,确保树始终保持平衡状态,保证操作时间复杂度为O(log原创 2025-05-27 16:09:27 · 253 阅读 · 0 评论 -
二叉搜索数——BST
二叉搜索树(BST)是一种有序的二叉树结构,具有以下性质:对于任意节点,其左子树的所有节点值均小于该节点的值,右子树的所有节点值均大于该节点的值。BST的实现包括结构体设计、主要函数(如插入、查找、删除、销毁等)以及遍历操作。插入节点时,通过比较值的大小找到合适位置;查找操作从根节点开始,根据目标值决定进入左或右子树;删除操作分为三种情况:无子节点、一个子节点和两个子节点,分别采用不同的处理方式。BST的中序遍历结果是一个升序序列,但若树不平衡,操作效率可能降至O(n)。实际应用中常使用平衡BST(如AVL原创 2025-05-18 13:17:15 · 783 阅读 · 0 评论 -
二叉树构建与遍历全解析
本文介绍了二叉树的构建和遍历方法。首先,通过单个序列(如前序、中序、后序)构建二叉树时,需使用特殊符号(如#)作为终止符,并注意递归调用时的指针问题,可通过C++引用操作符或静态成员解决。其次,利用两个序列(如前中序、后中序)构建二叉树时,前序或后序序列的第一个元素为根节点,中序序列用于确定左右子树。接着,详细讲解了二叉树的前序、中序、后序遍历的递归和非递归实现,非递归方法借助栈实现。最后,介绍了基于广度优先的层序遍历及其变种(正S与倒S遍历),通过队列或双栈实现。原创 2025-05-09 12:43:37 · 1008 阅读 · 0 评论