![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
张国星就是个弱智
我是张国星,我就是个弱智
展开
-
avl树
简述 二叉搜索树的最坏情况下搜索的时间复杂度可能达到O(n),avl树在普通的二叉搜索树的基础上加入了自动平衡的特性,其左子树与右子树的高度差的绝对值不大于2,且左子树与右子树也是一棵avl树 旋转 avl树进行插入或者删除后,通过旋转来满足平衡性质 总共有4种情况需要旋转 LL: 左孩子的左子树进行了插入导致了不平衡,此时需要右旋 RR:右孩子的右子树进行了插入导致了不平衡,此时需要左旋 LR:左孩子的右子树进行了插入,此时需要先左旋再右旋 RL:右孩子的左子树进行了插入,此时需要先右旋再左旋 代码实原创 2020-12-30 15:02:00 · 189 阅读 · 0 评论 -
并查集
在一些有N个元素的集合问题中,开始时通常让每个元素构成一个单元素的集合,然后按一定顺序将属于同一组的元素所在的集合合并,其间要反复查找一个元素在哪个集合中,可以用并查集来描述,其是树形结构。 操作步骤 初始化:把给个点所在的集合初始化为自身void init(){ for(int i=0; i<n; i++){ father[i] = i; } } 查找:查找元素所在集合int find(int x){ int r = x; while(father[r] != r){ r =原创 2020-09-29 10:48:01 · 49 阅读 · 0 评论