-
自己动手实现java数据结构(八) 优先级队列
所属栏目:[安全] 日期:2021-04-01 热度:111
1.优先级队列介绍 1.1 优先级队列 有时在调度任务时,我们会想要先处理优先级更高的任务。例如,对于同一个柜台,在决定队列中下一个服务的用户时,总是倾向于优先服务VIP用户,而让普通用户等待,即使普通的用户是先加入队列的。 优先级队列和普通的先进先[详细]
-
自己动手实现java数据结构(六)二叉搜索树
所属栏目:[安全] 日期:2021-04-01 热度:129
1.二叉搜索树介绍 前面我们已经介绍过了向量和链表。有序向量可以以二分查找的方式高效的查找特定元素,而缺点是插入删除的效率较低(需要整体移动内部元素);链表的优点在于插入,删除元素时效率较高,但由于不支持随机访问,特定元素的查找效率为线性复杂度[详细]
-
自己动手实现java数据结构(一) 向量
所属栏目:[安全] 日期:2021-04-01 热度:98
1.向量介绍 计算机程序主要运行在内存中,而内存在逻辑上可以被看做是连续的地址。为了充分利用这一特性,在主流的编程语言中都存在一种底层的被称为 数组(Array) 的数据结构与之对应。在使用数组时需要事先声明 固定的大小 以便程序在运行时为其开辟内存空[详细]
-
自己动手实现java数据结构(四)双端队列
所属栏目:[安全] 日期:2021-04-01 热度:128
1.双端队列介绍 在介绍双端队列之前,我们需要先介绍队列的概念。和栈相对应,在许多算法设计中,需要一种" 先进先出(First Input First Output) "的数据结构,因而一种被称为" 队列(Queue) "的数据结构被抽象了出来(因为现实中的队列,就是先进先出的)。 队[详细]
-
自己动手实现java数据结构(三) 栈
所属栏目:[安全] 日期:2021-04-01 热度:109
1.栈的介绍 在许多算法设计中都需要一种 "先进后出(First Input Last Output)" 的数据结构,因而一种被称为 "栈" 的数据结构被抽象了出来。 栈的结构类似一个罐头:只有一个开口;先被放进去的东西沉在底下,后放进去的东西被放在顶部;想拿东西必须按照从上[详细]
-
自己动手实现java数据结构(二) 链表
所属栏目:[安全] 日期:2021-04-01 热度:192
1.链表介绍 前面我们已经介绍了向量,向量是基于数组进行数据存储的 线性表 。今天,要介绍的是线性表的另一种实现方式--- 链表 。 链表和向量都是线性表,从使用者的角度上依然被视为一个线性的列表结构。但是,链表内部存储数据的方式却和向量大不相同:链[详细]
-
【数据结构】第二章小结
所属栏目:[安全] 日期:2021-04-01 热度:52
ps:第一次用博客园写,记录第一次 一、数据结构第二章主要为:顺序表和链表的构造及其增删查改的一些基本操作,以及粗略计算它们的时间or空间的复杂度。 ? ? ? 1、顺序表: ? ? ? ? ? ? ? ? ? ? ? ? ?(1)? 特点:逻辑结构上相邻,物理存储上也是相邻的,[详细]
-
【数据结构】 单向链表
所属栏目:[安全] 日期:2021-04-01 热度:114
【1】错误:H-next =NULL 或其他“让指针指向空”的语句运行报错: “ ‘NULL‘ : undeclared identifier ”? 、 “ ‘=‘ : cannot convert from ‘int‘ to ‘struct node *‘? ” 原因:未引入头文件 #include “stdio.h”?,把NULL定义为一个空地址是在 s[详细]
-
[JZOJ6089]【CodeChef 2014 April Challenge】Final Battle of C
所属栏目:[安全] 日期:2021-04-01 热度:195
Description (n,q,Vleq 100000,w_ileq 10^9) Solution 又是一道大数据结构 由于有一个下取整,这就导致了不同时间的修改值是不能简单的直接加在一起的。 容易发现,1操作的影响只会影响到距离不超过log的点。 这样我们很容易得到一个 (qlog nlog ^2V[详细]
-
【数据结构】红黑树与跳表-(SortSet)-(TreeMap)-(TreeSet)
所属栏目:[安全] 日期:2021-04-01 热度:81
SortSet 有序的Set,其实在Java中TreeSet是SortSet的唯一实现类,内部通过TreeMap实现的;而TreeMap是通过红黑树实现的;而在Redis中是通过跳表实现的; SkipList 跳表,思想类似平衡二叉树,但又不一样;下面摘了一个介绍: skiplist数据结构简介(摘自: h[详细]
-
【数据结构】维护队列
所属栏目:[安全] 日期:2021-04-01 热度:125
T69293 维护队列 题目描述 Alice 给 Bob 布置了很多工作,他忙的不可开交,决定按照“先进先出(FIFO)”的顺序依次处理这些工作。但是处理过程中,Bob 意识到这种顺序可能不是最优的,因此他会选择性的把某些工作延后。 抽象来说,你需要维护一个队列,支持三[详细]
-
【数据结构】静态链表的实现(C语言描述)
所属栏目:[安全] 日期:2021-04-01 热度:58
#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 热度:171
今天的内容是 带修莫队 。 例题:P1903 [国家集训队]数颜色 / 维护队列 题目描述 墨墨购买了一套N支彩色画笔(其中有些颜色可能相同),摆成一排,你需要回答墨墨的提问。墨墨会向你发布如下指令: 1、 Q L R代表询问你从第L支画笔到第R支画笔中共有几种不同[详细]
-
【数据结构】二叉树的创建与遍历
所属栏目:[安全] 日期:2021-04-01 热度:117
#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 热度:150
? 假设我们现在拿到了一个非常大的数组,对于这个数组里面的数字要反复不断地做两个操作。 1、(query)随机在这个数组中选一个区间,求出这个区间所有数的和。 2、(update)不断地随机修改这个数组中的某一个值。 时间复杂度: 枚举 : 枚举L~R的每个数并[详细]
-
《数据结构》第一章:绪论
所属栏目:[安全] 日期:2021-03-31 热度:148
第一章:绪论 1.1 数据结构的基本概念 数据:是信息的载体,是描述客观事物属性的数、字符以及所有能输入到计算机中并被计算机程序识别和处理的符号的集合。 数据元素:是数据的基本单位,一个数据元素可由若干个数据项组成,数据项是构成数据元素的不可分割[详细]
-
Codeforces 999D Equalize the Remainders 【数据结构】【贪心】
所属栏目:[安全] 日期:2021-03-31 热度:106
考场的时候想到的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 热度:189
目录 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 热度:126
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 热度:116
问题描述 给定一张迷宫地图和一个迷宫入口,然后进入迷宫探索找到一个出口。如下图所示: 该图是一个矩形区域,有一个入口和出口。迷宫内部包含不能穿越的墙壁或者障碍物。这些障碍物沿着行和列放置,与迷宫的边界平行。迷宫的入口在左上角,出口在右下角。[详细]
-
【数据结构】1-3 多项式相加
所属栏目:[安全] 日期:2021-03-31 热度:72
其实这个还是有点问题的,在偶见情况下会打印出0*x,目前无解唔。。。 原理就是借用线性表,然后做运算直接先插入到后面。 然后遍历一下,只要指数相同就合并在前面一个里面,后面的归0(不删除)。 打印的时候加一个判断是否为0的条件就行了。 下面是源码:[详细]
-
【数据结构】1-2 约瑟夫环问题
所属栏目:[安全] 日期:2021-03-31 热度:124
这里放出两种不同的代码,一个是老师给的(较为复杂),还有一个是自己写的。 自己写的: #includeiostream using namespace std; struct Node { int data; // 数据单元 Node *link; // 指向下一个结点 }; class Josephus{ private : Node *head,*current; /[详细]
-
《数据结构》实验三: 栈和队列实验
所属栏目:[安全] 日期:2021-03-31 热度:168
《数据结构》实验三:??? 栈和队列实验 一..实验目的 ???? 巩固栈和队列数据结构,学会运用栈和队列。 1.回顾栈和队列的逻辑结构和受限操作特点,栈和队列的物理存储结构和常见操作。 2.学习运用栈和队列的知识来解决实际问题。 3.进一步巩固程序调试方法。[详细]
-
linux下编译boost.python简单方法
所属栏目:[安全] 日期:2021-03-19 热度:174
最近项目使用c++操作 Python 脚本,选用boost.python库。在window下编译安装很顺利,但是在Linux下一直编译不通过,总是提示找不到头文件。linux版本为rhel5.7。后来询问同事,原来是同事将原来系统自带的python2.4删除掉了,然后手动编译安装了python3.3。[详细]
-
Linux下的tar压缩解压缩命令详解(小结)
所属栏目:[安全] 日期:2021-03-19 热度:195
tar -c: 建立压缩档案 -x:解压 -t:查看内容 -r:向压缩归档文件末尾追加文件 -u:更新原压缩包中的文件 这五个是独立的命令,压缩解压都要用到其中一个,可以和别的命令连用但只能用其中一个。下面的参数是根据需要在压缩或解压档案时可选的。 -z:有gzip[详细]