-
【数据结构】哈希表
所属栏目:[安全] 日期:2020-12-15 热度:131
哈希表(散列表),是通过关键字key而直接访问在内存存储位置的一种数据结构,它就是 以空间换取时间。通过多开辟几个空间,来实现查找的高效率。 对于哈希表,我们并不是很陌生:在c语言学习阶段,给定一个字符串,查找第一个只出现过一次的字符;在数据结[详细]
-
【数据结构】位图
所属栏目:[安全] 日期:2020-12-15 热度:196
位图 来自于《编程珠玑》。所谓的Bit-map就是用一个bit位来标记某个元素对应的Value, 而Key即是该元素。由于采用了Bit为单位来存储数据,因此在存储空间方面,可以大大节[详细]
-
【数据结构】布隆过滤器
所属栏目:[安全] 日期:2020-12-15 热度:162
1.布隆过滤器的引入: 我们知道,在海量整形数中查找一个数字是采用位图来完成的;如果要在海量的字符串中查找一个字符串是否在其中,位图就是无法解决的,所以引入了布隆过滤器。 2.布隆过滤器的概述: 布隆过滤器是由布隆这个人提出的,它是由一系列的二进[详细]
-
【数据结构】——平衡二叉树(插入)
所属栏目:[安全] 日期:2020-12-15 热度:174
? ? 平衡二叉树,是一种二叉排序树,其中每个结点的左子树和右子树的高度差至多等于1。它是一种高度平衡的二叉排序树。高度平衡?意思是说,要么它是一棵空树,要么它的左子树和右子树都是平衡二叉树,且左子树和右子树的深度之差的绝对值不超过1。 ? ? 将二[详细]
-
【数据结构】树和二叉树
所属栏目:[安全] 日期:2020-12-15 热度:124
树的一些概念 (1)树是n(n=0)个有限数据的元素集合,形状倒过来像一颗树。 (2)节点:节点包含数据和指向孩子节点的指针 (3)叶子节点:没有孩子的节点,也就是度为0的 (4)节点的度:表示的是孩子节点的个数 (5)父子节点:一个节点father指向另一个[详细]
-
【数据结构】二叉搜索树
所属栏目:[安全] 日期:2020-12-15 热度:182
概念及其性质 二叉搜索树,又名二叉排序树,二叉查找树 二叉搜索树有一下特点: (1)若左子树不为空,则左子树的所有节点均小于根节点 (2)若右子树不为空,则右子树的所有节点均大于根节点 (3)左右子树也是二叉搜索树 (4)每棵树都有自己的key值,而且[详细]
-
【数据结构】之 线性表详解
所属栏目:[安全] 日期:2020-12-15 热度:151
线性表(Linear List) 基本概念 线性表是由n(n=0)个类型相同数据元素组成的有限序列 。 数据元素可由若干个数据对象组成,且一个线性表中的数据元素必须属于同一数据对象 。 线性表示n个类型相同数据元素的有限序列,对n0,除第一个元素无直接前驱,最后一[详细]
-
【数据结构】之 线性表详解
所属栏目:[安全] 日期:2020-12-15 热度:191
线性表(Linear List) 基本概念 线性表是由n(n=0)个类型相同数据元素组成的有限序列 。 数据元素可由若干个数据对象组成,且一个线性表中的数据元素必须属于同一数据对象 。 线性表示n个类型相同数据元素的有限序列,对n0,除第一个元素无直接前驱,最后一[详细]
-
【数据结构】图
所属栏目:[安全] 日期:2020-12-15 热度:186
本篇博文旨在介绍数据结构中的图;介绍了图以及图的有关概念;介绍了图的两种实现方式,并用代码进行了实现;介绍并实现了图的广度优先遍历和深度优先遍历; 图 图是数据结构中的一种非线性结构,由顶点以及顶点相连的边构成 图包括有向图和无向图 无向图中[详细]
-
【数据结构】图
所属栏目:[安全] 日期:2020-12-15 热度:124
【1】定义 图(Graph)是一种非线性数据结构任意的两个元素都可能相关,即图中任一元素可以有若干个直接前驱和直接后继,属于网状结构类型。 树是图的特例——有向无环图 【2】有向图(Digraph) 设 Vi、Vj为图中的两个顶点,若关系 Vi,Vj 存在方向性,称之[详细]
-
《数据结构》第一章:绪论
所属栏目:[安全] 日期:2020-12-15 热度:135
第一章:绪论 1.1 数据结构的基本概念 数据:是信息的载体,是描述客观事物属性的数、字符以及所有能输入到计算机中并被计算机程序识别和处理的符号的集合。 数据元素:是数据的基本单位,一个数据元素可由若干个数据项组成,数据项是构成数据元素的不可分割[详细]
-
Codeforces 999D Equalize the Remainders 【数据结构】【贪心】
所属栏目:[安全] 日期:2020-12-15 热度:152
考场的时候想到的n*m做法tle了,正解是O(n+m) 首先想到一个性质是不管a[i],a[j]相差多少,只要a[i],a[j]同余,那想让他们increase后%m得到另一个余数,那他们需要increse的次数是相等的。 所以我们想到把n个数按%m从0到m-1分成m类。这样就能贪心了,因为如[详细]
-
【数据结构】线性表&&顺序表详解和代码实例
所属栏目:[安全] 日期:2020-12-15 热度:181
喜欢的话可以扫码关注我们的公众号哦,更多精彩尽在微信公众号【程序猿声】 01 预备知识 1.0 什么是线性表? 线性表(List)是零个或者多个数据元素的有限序列. 首先它是一个序列.里面的元素是有顺序的,如果有多个元素,除开头和结尾以外的元素都有一个前驱和一[详细]
-
【数据结构】单链表&&静态链表详解和代码实例
所属栏目:[安全] 日期:2020-12-15 热度:124
喜欢的话可以扫码关注我们的公众号哦,更多精彩尽在微信公众号【程序猿声】 01 单链表(Singly Linked List ) 1.1 什么是单链表? 单链表是一种链式存储的结构。它动态的为节点分配存储单元。当有节点插入时,系统动态的为结点分配空间。在结点删除时,应该及[详细]
-
【数据结构】 耻辱*2 链表的倒序
所属栏目:[安全] 日期:2020-12-15 热度:99
要求: 输入一个链表 将其倒序; ? void Linklist_reverse(LinkList * L){ LinkList p = (*L)- next; LinkList q; LinkList r = NULL; while (p) { q = p- next; p -next = r; r = p; p = q; } q =(LinkList) malloc ( sizeof (LNode)); q -next = r; ( *L)[详细]
-
【数据结构】4. 树与二叉树
所属栏目:[安全] 日期:2020-12-15 热度:188
目录 4.1 树的基本概念 4.1.1 树的定义 4.1.2 基本术语 4.1.3 树的性质 4.2 二叉树的概念 4.2.1 二叉树的定义及其主要特性 (1)二叉树的定义 (2)几个特殊的二叉树 (3)二叉树的性质 4.2.2 二叉树的存储结构 (1)顺序存储结构 (2)链式存储结构 4.3 二[详细]
-
【数据结构】 线性表 的 链式存储结构
所属栏目:[安全] 日期:2020-12-15 热度:105
1 #includestdio.h 2 #includestdlib.h 3 4 typedef struct LinkList { 5 int data; 6 LinkList * next; 7 8 }LinkList,* linklist; 9 // 创建头结点 10 int CreateList(linklist L) { 11 L = (linklist) malloc ( sizeof (LinkList)); 12 if (! L) 13 exit([详细]
-
【数据结构】10分钟教你用栈求解迷宫老鼠问题超详细教程附C++源
所属栏目:[安全] 日期:2020-12-15 热度:84
问题描述 给定一张迷宫地图和一个迷宫入口,然后进入迷宫探索找到一个出口。如下图所示: 该图是一个矩形区域,有一个入口和出口。迷宫内部包含不能穿越的墙壁或者障碍物。这些障碍物沿着行和列放置,与迷宫的边界平行。迷宫的入口在左上角,出口在右下角。[详细]
-
【数据结构】1-3 多项式相加
所属栏目:[安全] 日期:2020-12-15 热度:114
其实这个还是有点问题的,在偶见情况下会打印出0*x,目前无解唔。。。 原理就是借用线性表,然后做运算直接先插入到后面。 然后遍历一下,只要指数相同就合并在前面一个里面,后面的归0(不删除)。 打印的时候加一个判断是否为0的条件就行了。 下面是源码:[详细]
-
【数据结构】1-2 约瑟夫环问题
所属栏目:[安全] 日期:2020-12-15 热度:107
这里放出两种不同的代码,一个是老师给的(较为复杂),还有一个是自己写的。 自己写的: #includeiostream using namespace std; struct Node { int data; // 数据单元 Node *link; // 指向下一个结点 }; class Josephus{ private : Node *head,*current; /[详细]
-
【数据结构】树状数组
所属栏目:[安全] 日期:2020-12-15 热度:146
树状数组 ta的本质是利用二进制的性质维护一组数据 最常用的操作就是求前缀和 int lowbit( int x){ return x(- x); /* 通过补码,清空高位1,只留下最后一个1 */ } ? void add( int x, int val){ while (x= n){ c[x] += val; x += lowbit(x); } /* 更新时,[详细]
-
【数据结构】5.1 顺序表的查找以及二分查找的实现
所属栏目:[安全] 日期:2020-12-15 热度:104
类的结构如下: class StaticSearchTable { private : int * data; int data_number; bool search_seq( int loc, int key); void select_sort(); bool flag; // 区分是否为顺序表 public : StaticSearchTable( int n, bool flag); int Search_Seq( int key);[详细]
-
『数据结构』莫队、带修莫队、树上莫队详解
所属栏目:[安全] 日期:2020-12-15 热度:184
普通莫队 简介 莫队是一种基于分块思想的离线算法,用于解决区间问题,适用范围如下: 只有询问没有修改。 允许离线。 在已知询问 ([l,r]) 答案的情况下可以 (O(1)) 得到 ([l,r?1],[l,r+1],[l?1,r],[l+1,r]) 的答案。 满足以上三个条件就可以在 (O(n[详细]
-
『数据结构』树状数组
所属栏目:[安全] 日期:2020-12-15 热度:154
树状数组的问题模型: 现在有一个这样的问题: 有一个数组 (a) ,下标从 (0) 到 (n-1) ,现在你要进行 (w) 次修改, (q) 次查询。 修改是修改数组中某一个元素的值; 查询是查询数组中任意一个区间的和, (w+q500000) 。 这个问题很普遍,首先分[详细]
-
『数据结构』线段树
所属栏目:[安全] 日期:2020-12-15 热度:163
线段树原理 线段树,类似区间树,它在各个节点保存一条线段(数组中的一段子数组),主要用于高效解决连续区间的动态查询问题,由于二叉结构的特性,它基本能保持每个操作的复杂度为 (O(logn)) 。 线段树的每个节点表示一个区间,子节点则分别表示父节点的[详细]