数据结构
文章平均质量分 76
学习
micro cc
这个作者很懒,什么都没留下…
展开
-
C/C++堆
对于一棵二叉树,当每个节点都大于等于它的两个子节点时,称为堆有序,这样的堆称为大堆;而当每个节点都小于等于它的两个子节点时,称为小堆。堆可以用一个数组表示:思路:每次插入一个数,就对数组作调整。[8, 15, 11, 48, 7, 24, 2, 19, 21, 47, 45, 5, 25, 38, 23]2.2 测试程序结果显示:思路:将最后一个元素和堆顶元素交换,然后调整顺序。以下用表示堆顶元素3.2 测试程序结果显示:......原创 2022-06-15 20:12:17 · 204 阅读 · 0 评论 -
红黑树的实现和打印
红黑树,顾名思义即所有的节点都是通过红黑两种颜色来标识的。保证了从根到任意叶子的任意路径,最长路径(节点红黑交错)原创 2022-06-09 22:52:43 · 438 阅读 · 0 评论 -
二叉树遍历_递归和迭代(动图)
二叉树遍历_递归和迭代1. 定义二叉树2. 二叉树递归遍历3. 二叉树迭代遍历3.1 前序遍历3.2 中序遍历3.3 后序遍历3.4 层序遍历1. 定义二叉树 首先定义一个简单的二叉树,以供测试:template<class T>struct BinaryNode{ BinaryNode<T>* _left; BinaryNode<T>* _right; T _val; BinaryNode(const T& val = T()) :_l原创 2022-05-26 23:53:34 · 464 阅读 · 0 评论 -
AVL(平衡二叉树)
平衡二叉树 在二叉搜索树的基础上引入平衡因子BF(balance factor)= 右子树高度 - 左子树高度,防止出现单链接太长的情况。平衡因子的更新规则:若新增的节点在parent右边,parent->BF++;若新增的节点在parent左边,parent->BF- -;若parent的平衡因子等于1 or -1,继续往上更新若parent的平衡因子等于0,停止更新若parent的平衡因子等于2 或者 -2,开始旋转AVL的旋转考虑四种情况:右单旋:代码:原创 2022-05-07 00:06:30 · 598 阅读 · 0 评论