数据结构
LSC_333
此人很懒
展开
-
AVL树的实现-c++
这里是AVL树的一些原理以及介绍#include<stdio.h>#include<string.h>#include<stdlib.h>#include<queue>#include<algorithm>using namespace std;#define INF 0x3f3f3f3ftypedef struct Node{ int val; int height; Node *lc; N原创 2021-09-22 15:06:06 · 153 阅读 · 0 评论 -
树状数组
时间复杂度树状数组是一个查询和修改的时间复杂度都为log(n)log(n)log(n)的数据结构。一般来说树状数组能解的题目,线段树都能解,但是线段树能解的问题,树状数组不一定能解。但是树状数组的有点在于方便实现,代码量少。树状数组的结构图中的A数组是原来的数组,C数组就是树状数组,如果先将A数组的每个元素都先放在C数组中,则:C数组中每一位所存的信息都由前面的某些位的信息构成,以求A的...原创 2019-06-15 11:16:59 · 954 阅读 · 0 评论 -
Binary Search Tree
二叉搜索树性质一个二叉搜索树具有以下性质若任意节点的左子树不空,则左子树上所有节点的值均小于它的根节点的值若任意节点的右子树不空,则右子树上所有节点的值均大于它的根节点的值任意节点的左、右子树也分别为二叉查找树没有键值相等的节点二叉搜索树特点由于二叉搜索树的特点,在进行查找、插入、删除时,时间复杂度最好能到O(logn)O(logn)O(logn),但是最差的情况在O(n)O(n...原创 2019-06-26 16:00:37 · 108 阅读 · 0 评论 -
AVL树
AVL树AVL树是最早被发明的自平衡二叉查找树在AVL树中,任一节点对应的两棵子树的最大高度差为1,因此它也被称为高度平衡树查找、插入和删除在平均和最坏情况下的时间复杂度都是O(logn)O(logn)O(logn)节点的平衡因子是它左、右子树的高度之差,如果这个差大于等于2就是不平衡的,即在AVL树中任意节点的左右子树的高度之差不大于1对于不平衡的树,需要对其做旋转操作使其平衡A...原创 2019-06-26 16:30:25 · 167 阅读 · 0 评论