数据结构
小马不奔腾
这个作者很懒,什么都没留下…
展开
-
数据结构-红黑树和2-3树
一. 红黑树的定义1.每个节点或者是红色的,或者是黑色的2.根节点是黑色的(一棵空树也是红黑树)。3.每个叶子节点(最后的空节点)是黑色的,定义空节点都是黑色的。4.如果一个节点是红色的,那么他的孩子节点都是黑色的。5.从任意一个节点到叶子节点,经过的黑色节点是一样的。学习红黑树之前,必须先学2-3树二. 2-3树学习2-3树,不仅对于理解红黑树有帮助,对于B树的数据结构也有帮...原创 2020-04-11 14:52:41 · 329 阅读 · 0 评论 -
数据结构-AVL(自平衡二叉查找树)插入和删除的实现
一. AVL的作用为什么使用AVL?在使用二分搜索树的时候,在极端的情况下,会退化成链表。如下图二. AVL的特点对于任意一个节点,左子树和右子树的高度差不能超过1。高度和节点数量之间的关系也是O(logn)的。加入/删除节点后,沿着节点维护平衡性。三. 如何维护AVL的平衡1. 添加 如何维护平衡(4种情景)情景1 : 左子树的左节点上(LL): 右旋转。右旋转伪代...原创 2020-04-10 16:39:21 · 242 阅读 · 0 评论 -
数据结构-线段树 初始化、区间查询和区间更新(待完善)
一. 线段树的特点平衡二叉树:最大的深度 和最小的深度 差最大为1。一种二叉搜索树。它将一段区间划分为若干单位区间,每一个节点都储存着一个区间。它功能强大,支持区间求和,区间最大值,区间修改,单点修改等操作。处理问题: 区间查询 ,区间更新线段树 是以空间换时间的处理,开启4N的空间如果区间有n个元素,数组表示需要有多少节点? 4n的空间,我们的线段树不考虑添加元素,即空间固...原创 2020-04-09 19:47:24 · 427 阅读 · 0 评论 -
数据结构-堆和优先队列
一. 堆1. 堆的特点:是一棵完全二叉树 : 把元素顺序排列成树的形状。二叉堆有两种:最大堆和最小堆。最大堆:父结点的键值总是大于或等于任何一个子节点的键值;最小堆:父结点的键值总是小于或等于任何一个子节点的键值;作用: 用来查找最大值(最大堆),最小值(最小堆)父节点和左右子节点索引之间的关系:parent(i) = ( i - 1 ) / 2left child(i) ...原创 2020-04-08 12:56:40 · 206 阅读 · 0 评论 -
数据结构-二分搜索树
一. 特点:二分搜索树是二叉树。二分搜索树的每个节点的值: 大于其左子树的所有节点的值,小于其右子树的所有节点的值。每一棵子树也是二分搜索树。存储的元素必须有比较性。我们的二分搜索树不包含重复元素。如果想包含重复元素的话,只需要定义:左子树小于等于节点;或者右子树大于等于节点。注意:之前的数组和链表,可以有重复元素。二分搜索树添加元素的非递归算法,和链表很像。二分搜索树关注递...原创 2020-04-07 12:22:35 · 182 阅读 · 0 评论 -
数据结构-双向链表
一. 双向链表原创 2020-04-03 14:48:31 · 204 阅读 · 0 评论 -
数据结构-单链表
一.单链表的特点单链表节点: 由一个数据,和指向下一个节点的指针组成。内存空间不连续,查找需要一个一个遍历查找。二. 单链表的增加与删除 总结:从上面来看,添加节点 ,删除节点 都很容易,但是找到节点却不容易。因为链表是内存空间不连续的,我们不能直接查找到某个节点。需要从头节点一个一个查找,所以删除和添加的操作的时间复杂度都为O(n).三.单链表时间复杂度分析新增节点:...原创 2020-04-03 12:52:13 · 352 阅读 · 0 评论 -
数据结构-队列
一. 队列的定义队列是一种特殊的线性表,仅能在两端进行操作,队头可以进行取数据操作,队尾进行插入数据操作。队列的特性是先进先出(FIFO)。队列一般只关注队首元素。入队enqueue(E) O(1),出队 dequeue(),O(n)队首移动,后面的向前移动。...原创 2020-04-01 21:03:35 · 140 阅读 · 0 评论 -
数据结构-栈
一.栈的特点1. 只能从栈顶添加元素,也只能从栈顶取出元素。2.后进先出的数据结构。原创 2020-03-31 19:21:04 · 254 阅读 · 0 评论 -
数据结构-数组
一.数组的概念数组(Array)是一种线性表数据结构。它用一组连续的内存空间,来存储一组具有相同类型的数据。如下图所示:二.数组的特点1.数组根据下标随机访问,时间复杂度为O(1)。2.数据的插入和删除和低效。如果插入/删除数组末尾的数据,最好情况时间复杂度为 O(1)如果插入/删除开头的数据,则最坏情况时间复杂度为 O(n)平均情况时间复杂度也为 O(n)。三.什么时候使用...原创 2020-03-30 22:42:24 · 285 阅读 · 0 评论