
数据结构
计算机存储、组织数据的方式,指相互之间存在一种或多种特定关系的数据元素的集合
零度苏打
有彩虹
展开
-
红黑树
了解红黑树,是一种二叉搜索树,但在每个结点上增加一个存储位表示结点的颜色,可以是Red或Black。 通过对任何一条从根到叶子的路径上各个结点着色方式的限制,确保没有一条路径会比其他路径长出俩倍,因而接近平衡性质每个结点不是红色就是黑色根节点是黑色的如果一个节点是红色的,则它的两个孩子结点是黑色的对于每个结点,从该结点到其所有后代叶结点的简单路径上,均包含相同数目的黑色结点每个叶子...原创 2020-03-21 20:03:11 · 110 阅读 · 0 评论 -
AVL树
了解之前的二叉搜索树虽缩短了查找效率,但如果数据有序/接近有序二叉搜索树将退化为单支树,查找元素相当于在顺序表中搜索元素,效率低下,引出AVL树:当向二叉搜索树中插入新结点后,如果能保证每个结点的左右子树高度之差的绝对值不超过1,即可降低树的高度,从而减少平均搜索长度性质它的左右子树都是AVL树左右子树高度之差(平衡因子)的绝对值不超过1如果有n个结点,其高度可保持在O(log2N...原创 2020-03-20 21:33:28 · 84 阅读 · 0 评论 -
二叉搜索树
了解也叫二叉排序树,中序遍历是有序的。性质:若左子树不为空,则左子树上所有节点的值小于根节点的值若右子树不为空,则右子树上所有节点的值大于根节点的值左右子树也是二叉搜索树操作查找根据性质:根节点不为空时:根节点值等于查找值,返回T根节点值大于查找值,去左子树继续查找根节点值小于查找值,去右子树继续查找否则返回F插入树为空,直接插入树不为空,根据性质找到合适...原创 2020-03-20 20:43:17 · 172 阅读 · 0 评论 -
数据结构总结(思维导图)
问题:堆的实现及操作、AVL树的实现、红黑树的操作、布隆过滤器的使用原创 2020-03-16 10:27:52 · 378 阅读 · 0 评论 -
栈与队列——Linux C编程一站式学习
数据结构的概念数据结构是数据的组织方式。程序中用到的数据都不是孤立的,而是有相互联系的,根据访问数据的需求不同,同样的数据可以有多种不同的组织方式。数据的组织方式包含了存储方式和访问方式这两层意思,二者是紧密联系的。比如说数组元素的存储空间是连续的。堆栈堆栈也是一组数据的集合,它的访问规则限制为Push(入栈)、Pop(出栈)两种操作。对于栈而言,先压栈的元素后出栈、后压栈的元素后先栈,...原创 2020-02-13 16:07:39 · 183 阅读 · 0 评论 -
排序与查找——Linux C编程一站式学习
算法的概念算法是将一组输入转化成一组输出的一系列计算步骤,其中每个步骤必须能在有限时间内完成。算法是用来解决一类计算问题的方法,具有通用性。插入排序插入排序采取增量式的策略,它的时间复杂度是O(n的平方)。类似于玩扑克,玩家每拿到一张牌都要插入到手中已有的牌里,使之从小到大排好序。在对数组进行插入排序时,要将插入点之后的数据依次往后移动一个单元。代码如下#include <ios...原创 2020-02-12 17:12:54 · 155 阅读 · 0 评论 -
栈和队列
栈先进先后(FILO) 栈是一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端称为栈顶,另一端称为栈底。 对栈而言,插入操作叫入栈(压栈),删除操作叫出栈,都是对栈顶元素进行操作。栈的实现一般可以使用数组或者链表实现.队列先进先出(FIFO)...原创 2019-07-31 13:46:56 · 233 阅读 · 0 评论 -
二叉树
二叉树及其基本操作二叉树二叉树的基本操作二叉树的创建二叉树的遍历二叉树二叉树是只有左右结点的特殊的树,可以分为满二叉树和完全二叉树(完全二叉树是满二叉树的特殊形式)结点个数 = 边的个数 + 1对于完全二叉树而言 结点个数:2^n----->高度为log(n)二叉树的基本操作二叉树的创建根据前序遍历创建typedef struct Node { char val; st...原创 2019-07-22 17:25:50 · 129 阅读 · 0 评论 -
堆(Heap)
堆概念逻辑上讲 完全二叉树物理存储 以数组方式存储特性:任意结点的值都大于等于(小于等于)它的孩子基本功能:找最(大/小)值结点下标:结点的双亲下标:(index-1)/ 2结点的左孩子下标:2 * index + 1结点的右孩子下标:2 * index + 2堆化(heapify)也可叫做向下调整,当整个堆中仅有一个位置不满足堆的特性时可以使用。步骤:1.确认ind...原创 2019-07-20 20:11:53 · 153 阅读 · 0 评论 -
排序的整理
排序的相关概念:什么是排序,排序的稳定性,内部排序与外部排序 ?排序:就是使一串记录,照其中的某个或某些关键字的大小,递增或递减的排列起来的操作。稳定性:假定在待排序的记录序列中,存在多个具有相同的关键字的记录,若经过排序,这些记录的相对次序保持不变,即在原序列中,r[i]=r[j],且r[i]在r[j]之前,而在排序后的序列中,r[i]仍在r[j]之前,则称这种排序算法是稳定的;否则称为不...原创 2019-07-19 19:21:54 · 210 阅读 · 0 评论