-
【数据结构】静态链表的实现(C语言描述)
所属栏目:[安全] 日期:2021-04-01 热度:176
#include stdio.h#include "stdlib.h"#define OK 1#define ERROR 0#define TRUE 1#define FALSE 0#define MAXSIZE 1000 // 定义线性表最大容量typedef int Status;typedef int ElemType;// 定义静态链表的存储结构typedef struct{ ElemType data; // 数据域[详细]
-
【数据结构】二叉树的创建与遍历
所属栏目:[安全] 日期:2021-04-01 热度:172
#include stdio.h#include string.h#include stdlib.h#include math.h#define OK 1#define ERROR 0#define TRUE 1#define FALSE 0#define MAXSIZE 100 /* 存储空间初始分配量 */typedef int Status;typedef char TElemType; /* 假定二叉树的元素都是字符类型[详细]
-
【数据结构】线段树(Segment Tree)
所属栏目:[安全] 日期:2021-04-01 热度:89
? 假设我们现在拿到了一个非常大的数组,对于这个数组里面的数字要反复不断地做两个操作。 1、(query)随机在这个数组中选一个区间,求出这个区间所有数的和。 2、(update)不断地随机修改这个数组中的某一个值。 时间复杂度: 枚举 : 枚举L~R的每个数并[详细]
-
【数据结构】2.java源码关于LinkedList
所属栏目:[安全] 日期:2021-04-01 热度:187
关于LinkedList的源码关注点 1.从底层数据结构,扩容策略 2.LinkedList的增删改查 3.特殊处理重点关注 4.遍历的速度,随机访问和iterator访问效率对比 ? 1.从底层数据结构,扩容策略 构造函数不做任何操作,只要再add的时候进行数据初始化操作,以操作推动逻[详细]
-
【数据结构】【状态压缩】刷题
所属栏目:[安全] 日期:2021-04-01 热度:132
没什么别的,就希望自己记住那些函数 1floyd+bitset优化 #includecstdio #include cstdlib #include bitset using namespace std; int n; const int N= 2003 ; char s[N]; bitset N bs[N]; int main(){ scanf( " %d " , n); for ( int i= 1 ;i=n;i++ ) { sca[详细]
-
【数据结构】5.1 顺序表的查找以及二分查找的实现
所属栏目:[安全] 日期:2021-04-01 热度:170
类的结构如下: 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);[详细]
-
『数据结构』莫队、带修莫队、树上莫队详解
所属栏目:[安全] 日期:2021-04-01 热度:50
普通莫队 简介 莫队是一种基于分块思想的离线算法,用于解决区间问题,适用范围如下: 只有询问没有修改。 允许离线。 在已知询问 ([l,r]) 答案的情况下可以 (O(1)) 得到 ([l,r?1],[l,r+1],[l?1,r],[l+1,r]) 的答案。 满足以上三个条件就可以在 (O(n[详细]
-
『数据结构』树状数组
所属栏目:[安全] 日期:2021-04-01 热度:71
树状数组的问题模型: 现在有一个这样的问题: 有一个数组 (a) ,下标从 (0) 到 (n-1) ,现在你要进行 (w) 次修改, (q) 次查询。 修改是修改数组中某一个元素的值; 查询是查询数组中任意一个区间的和, (w+q500000) 。 这个问题很普遍,首先分[详细]
-
《数据结构》第一章:绪论
所属栏目:[安全] 日期:2021-03-31 热度:128
第一章:绪论 1.1 数据结构的基本概念 数据:是信息的载体,是描述客观事物属性的数、字符以及所有能输入到计算机中并被计算机程序识别和处理的符号的集合。 数据元素:是数据的基本单位,一个数据元素可由若干个数据项组成,数据项是构成数据元素的不可分割[详细]
-
Codeforces 999D Equalize the Remainders 【数据结构】【贪心】
所属栏目:[安全] 日期:2021-03-31 热度:107
考场的时候想到的n*m做法tle了,正解是O(n+m) 首先想到一个性质是不管a[i],a[j]相差多少,只要a[i],a[j]同余,那想让他们increase后%m得到另一个余数,那他们需要increse的次数是相等的。 所以我们想到把n个数按%m从0到m-1分成m类。这样就能贪心了,因为如[详细]
-
【数据结构】4. 树与二叉树
所属栏目:[安全] 日期:2021-03-31 热度:90
目录 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 二[详细]
-
【数据结构】 线性表 的 链式存储结构
所属栏目:[安全] 日期:2021-03-31 热度:95
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++源
所属栏目:[安全] 日期:2021-03-31 热度:146
问题描述 给定一张迷宫地图和一个迷宫入口,然后进入迷宫探索找到一个出口。如下图所示: 该图是一个矩形区域,有一个入口和出口。迷宫内部包含不能穿越的墙壁或者障碍物。这些障碍物沿着行和列放置,与迷宫的边界平行。迷宫的入口在左上角,出口在右下角。[详细]
-
【数据结构】1-3 多项式相加
所属栏目:[安全] 日期:2021-03-31 热度:77
其实这个还是有点问题的,在偶见情况下会打印出0*x,目前无解唔。。。 原理就是借用线性表,然后做运算直接先插入到后面。 然后遍历一下,只要指数相同就合并在前面一个里面,后面的归0(不删除)。 打印的时候加一个判断是否为0的条件就行了。 下面是源码:[详细]
-
【数据结构】1-2 约瑟夫环问题
所属栏目:[安全] 日期:2021-03-31 热度:112
这里放出两种不同的代码,一个是老师给的(较为复杂),还有一个是自己写的。 自己写的: #includeiostream using namespace std; struct Node { int data; // 数据单元 Node *link; // 指向下一个结点 }; class Josephus{ private : Node *head,*current; /[详细]
-
《数据结构》实验三: 栈和队列实验
所属栏目:[安全] 日期:2021-03-31 热度:188
《数据结构》实验三:??? 栈和队列实验 一..实验目的 ???? 巩固栈和队列数据结构,学会运用栈和队列。 1.回顾栈和队列的逻辑结构和受限操作特点,栈和队列的物理存储结构和常见操作。 2.学习运用栈和队列的知识来解决实际问题。 3.进一步巩固程序调试方法。[详细]
-
《数据结构》实验二: 线性表实验
所属栏目:[安全] 日期:2021-03-31 热度:181
《数据结构》实验二: ????? 线性表实验 一. . 实验目的 ????? 巩固线性表的数据结构,学会线性表的应用。 1. 回顾线性表的逻辑结构,线性表的物理存储结构和常见操作。 2. 学习运用线性表的知识来解决实际问题。 3. 进一步巩固程序调试方法。 4. 进一步巩[详细]
-
【数据结构】红黑树
所属栏目:[安全] 日期:2021-03-31 热度:193
? ? ? ? ?红黑树是一种二叉平衡树,在每一个结点增加了一个存储位表示结点的颜色,以维持它的平衡; 红黑树性质 (1)红黑树结点有如下域:color,key,left,right,p;我们把这些NIL结点是为指向外结点的指针,可以自己定义; (2)每一个结点不是红的就是[详细]
-
《数据结构》实验四: 字符串和多维数组 实验
所属栏目:[安全] 日期:2021-03-30 热度:150
《数据结构》实验四: ???? 字符串和多维数组?实验 一. . 实验目的 ????? 巩固字符串和多维数组相关知识,学会运用灵活应用。 1. 回顾字符串和多维数组的逻辑结构和存储操作特点,字符和数组的物理存储结构和常见操作。 2. 学习运用字符串和和数组的知识来[详细]
-
《数据结构》实验一: VC编程工具的灵活使用
所属栏目:[安全] 日期:2021-03-30 热度:129
《数据结构》实验一:VC编程工具的灵活使用 一、实验目的 ???? 复习巩固VC编程环境的使用,以及C++模板设计。 1、回顾并掌握VC单文件结构程序设计过程。 2、回顾并掌握VC多文件工程设计过程 3、掌握VC程序调试过程。 4、回顾C++模板和模板的程序设计。 二、[详细]
-
【数据结构】 第一章 绪论
所属栏目:[安全] 日期:2021-03-30 热度:97
§1.1 什么是数据结构 数据结构是介于数学 计算机软件和计算机硬件三者之间的一门核心课程。 §1.2 基本概念和术语 数据结构通常有下列4种基本结构 ①集合 ②线性结构 ③树形结构 ④图状结构(网状结构) 数据结构是一个二元组: Data Structure = (D,S) D表[详细]
-
【数据结构】第二章 线性表
所属栏目:[安全] 日期:2021-03-30 热度:169
§2.1线性表的定义 §2.2线性表的顺序表示和实现 优点: 随机 存储 §2.3线性表的链式表示和实现 ?链式表示优点:灵活 ? ? 缺点:不随机存储 ?2.3.1线性链表:储存单元可以是连续的 也可以是不连续的。 ?对于数据元素ai来说,除了存储其本身的信息之外,还需[详细]
-
【数据结构】顺序栈
所属栏目:[安全] 日期:2021-03-30 热度:157
#include STDIO.H#include STRING.H#include STDLIB.Htypedef struct SeqStack{int length;int top;char *data;}seqstack;seqstack* CreatStack(seqstack *s,int n){s=(seqstack *)malloc(sizeof(seqstack)+n*sizeof(char));if(s==NULL) return NULL;memset([详细]
-
【数据结构】单链表
所属栏目:[安全] 日期:2021-03-30 热度:151
#include stdio.h#include stdlib.h#include STRING.Htypedef struct LinkNode{int date; //数据域struct LinkNode * next;}linkNode;typedef struct Linklist{int length; linkNode *head;}linklist;linklist *Creatlist(){linklist *list;list=(linklist *[详细]
-
【数据结构】图的遍历方法 深度优先遍历和广度优先遍历
所属栏目:[安全] 日期:2021-03-30 热度:121
接着上次的文章“图的构建(邻接链表法)”,邻接链表法构建图相对来说比较简单,并且遍历起来也相对简单,但是要是动态添加图的节点和图的边,则是实在不方便,不过现在不管那么多,今天的主题是遍历。? -? 有另外一种图的构建方法,叫做十字链表法,插入删[详细]
