![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
WTIAW.TIAW
这个作者很懒,什么都没留下…
展开
-
P1440 求m区间内的最小值单调队列 Java
题目使用Java会爆内存。Deque Java自带的双端队列 LinkedList实现,可以从两端进行插入删除操作。单调队列时刻维护队列中元素下标位于区间内.while(dq.peekFirst() <= i - 1 - m)dq.pollFirst();import java.util.Deque;import java.util.LinkedList;import java.util.PriorityQueue;import java.util.Queue;import ja原创 2020-12-08 12:16:20 · 289 阅读 · 0 评论 -
后缀表达式计算方式
例题:后缀表达式:9 3 1-3*+ 10 2/+规则:从左到右遍历表达式的每个数字和符号,遇到是数字就进栈,遇到是符号,就将处于栈顶两个数字出栈,进行运算,运算结果进栈,一直到最终获得结果。具体:详解后缀表达式...原创 2020-10-12 19:18:25 · 415 阅读 · 0 评论 -
2020QAU校赛G题题解:施肥 差分区间
施肥题目描述:QAU是著名的农业大学,所以学校里的树很多。假设学校有n颗树,树按1~n编号排列。一天,QAUer因为偷钓虹子湖的鱼被农学院的老师们抓住了,他惩罚QAUer为学校里的树施肥。老师们要求你去给给定区间的树施肥一次, 假设有m个老师,每个老师分别给定的施肥区间,并且要求你最后统计所有树的价值之和。我们规定单个树的价值等于树的编号乘以给它施肥的次数。如给第二颗树施肥三次,它的价值就是2 * 3 = 6。QAUer算了很久,发现学校里的树太多了,他算不过来,请你编写程序帮他统计所有树的价值之.原创 2020-10-05 10:57:24 · 198 阅读 · 0 评论 -
C语言构造哈夫曼编码
首先我们定义两个结构体,一个用于定义哈夫曼树的结点,一个用来定义每个叶子结点的哈夫曼编码.typedef struct{ char data; //结点值 double weight; //权重 int parent; //父亲结点 int lchild; //左孩子结点 int rchild; //右孩子结点} HTNode; //哈夫曼树的结点类型typedef struct{ char cd[MAXN]; //存原创 2020-09-28 16:35:28 · 1282 阅读 · 0 评论 -
数据结构错题整理
(以列序存储)原创 2020-06-17 17:26:09 · 164 阅读 · 0 评论 -
第十九章 数据结构 AOE网与关键路径
文章目录关键路径基于拓扑排序关键路径关键路径从源点到汇点具有最大长度的路径叫关键路径。用AOE网来估算某些工程的完成时间是非常有用的。逆拓扑次序。vl(n) = ve(n);vl(i) = MIN{vl(j)(事件最晚开始时间) - dut(<i, j>)(边权)};先进行一次拓扑排序基于拓扑排序下面代码的上一部分求事件的最晚发生事件。下一部分确定关键路径。...原创 2020-05-22 19:28:05 · 287 阅读 · 0 评论 -
树的三种表示法:双亲表示法、孩子表示法、孩子兄弟表示法
大佬博客传送门 抽象数据类型:树的存储结构:利用顺序存储和链式存储的特点,完全可以实现对树的存储结构的表示。介绍三种不同的表示法:双亲表示法、孩子表示法、孩子兄弟表示法。1.双亲表示法我们假设以一段连续空间存储树的结点,同时在每个结点中转载 2020-05-16 17:26:40 · 5149 阅读 · 0 评论 -
第十七章 数据结构 最小生成树
文章目录概念Prim算法克鲁斯卡尔算法实际问题解决概念(普利姆)prim算法逐步增加U中的顶点,顾可称为加点法。Prim算法**条件:**因为是加点法,所以适合求边稠密的最小生成树,时间复杂度为 O(n2)O(n^2)O(n2)克鲁斯卡尔算法适用因为是加边法,与点无关,所以适用于稀疏图,适合于边稀疏的网的最小生成树。算法思想:将所有连通分量上的点,全部连接到同一个连通网上去。时间复杂度为O(e∗log2e)O(e*log_2^e)O(e∗log2e)基本思想其实就是避圈法。原创 2020-05-13 17:08:08 · 238 阅读 · 0 评论 -
第十六章 数据结构 图的基本概念,存储结构
文章目录哥尼斯堡七桥问题图的分类权值和网图的基本术语简单路径简单回路子图无向图的连通性无向图的连通分量图 - 生成树和生成树林图的基本操作计算图的存储结构邻接矩阵邻接表哥尼斯堡七桥问题一笔画问题。将实际问题抽象成数学问题。图是一种网状数据结构, 是由一个顶点的有穷非空集V(G)和一个弧或边的集合E(G)构成。通常记作二元组 G = (V, E)。其中G表示一个图, V是图G中顶点的集合, E是图G中弧的集合。线性表可以无元素,树中可以无结点,图中不能没有结点。在定义中强调了顶点集:有穷非空集原创 2020-05-12 16:36:13 · 578 阅读 · 0 评论 -
牛牛的鱼缸 三角形的相似性
题目链接思路:利用三角形的相似性解决。分类讨论情况 import java.util.ArrayList; import java.util.Arrays; import java.util.Comparator; import java.util.HashSet; import java.util.LinkedList; import java.util.Map; import java.util.Queue; import java.util.Scanner; import jav原创 2020-05-09 10:55:27 · 197 阅读 · 0 评论 -
第十五章 数据结构 哈夫曼树
文章目录哈夫曼树的基本概念例题:构造哈夫曼树 + 实例哈夫曼编码-哈夫曼树(最优二叉树)的应用最优二叉树解决问题关于哈夫曼编码的结论判断是否为哈夫曼编码常用换算哈夫曼树的基本概念在T集合中选取最小和次小的两棵二叉树作为左,右子树。例题:构造哈夫曼树 + 实例在解决电文传输中,加快输出速度,我们可以使用哈夫曼树。●由此可见:设计电文总长最短的二进制前缀编码,就是以n种字符出现的频率作权...原创 2020-05-06 17:49:08 · 754 阅读 · 0 评论 -
第十四章 数据结构 树与二叉树(—)
树的基本概念1: 树属于一种非线性数据结构//因为线性数据结构只有唯一的前驱和后继。2: 树以分支关系描述数据元素之间的层次结构3: 树(tree)是 n(n≥0) 个结点的有限集4: 树的结构中,有且仅有一个特殊的结点,称为树的根结点(root)5: 树中存在唯一的称为根的数据元素6: 树中各子树是互不相交的集合7: 树的根结点没有前驱结点,除根之外的所有结点都有且只有一个前驱结点...原创 2020-04-24 23:40:26 · 256 阅读 · 0 评论 -
第十三章 数据结构 广义表的定义
文章目录定义典型例题简要概念定义广义表简称表,它是线性表的推广。一个广义表是n(n≥0)个元素的一个序列,若n=0时则称为空表。设ai为广义表的第i个元素,则广义表GL的一般表示与线性表相同:GL=(a1,a2,…,ai,…,an)其中n表示广义表的长度,即广义表中所含元素的个数,n≥0。如果ai是单个数据元素,则ai是广义表GL的原子;如果ai是一个广义表,则ai是广义表GL的子表。...原创 2020-04-21 16:15:42 · 2066 阅读 · 0 评论 -
第十二章 数据结构 数组和广义表 + 矩阵的存储 + 稀疏矩阵 + 三元组转置的代码实现
数组数组的定义,特点及顺序存储线性表的推广- 数组数组是我们熟悉的数据结构,可以把数组看作是线性表的推广。数组的特点是结构中的元素本身可以是具有某种结构的数据, 但属于同一数据类型。以一维数组为基础, 可以这样观察。将二维数组看成数据元素是一维数组的一维数组。将三维数组看成元素是二维数组的一维数组。n维数组中, 每个数据元素受n个关系的约束。一般来说, 在数组上不能做插入, 删...原创 2020-04-19 09:38:49 · 968 阅读 · 0 评论 -
第十一章 数据结构 串的模式匹配 BF算法 + KMP算法中next[]回退算法理解。
串的模式匹配设有主串s和子串t, 子串t的定位就是要在s中找到一个与子串相等的子串。通常把主串s称为目标串, 把子串t称为模式串, 因此定位也称作模式匹配。在目标串s中找到一个模式串t, 称为模式匹配成功。在目标串s中找到一个模式串t, 称为模式匹配不成功。Brute-Force算法Brute-Force算法简称为BF算法, 亦称为简单匹配算法。这个算法又称为暴力匹配。假设我们用i...原创 2020-04-15 19:43:20 · 626 阅读 · 0 评论 -
计蒜客 收藏古币 pair vector mutset
文章目录题目连接题目思路set中嵌套pair 这里使用makepair 同时用hash散列的思想。set中嵌套vectorset中嵌套mutiset (集合中元素不重复)题目连接题目给你一个n * 5的矩阵, 让你判断哪一行曾经出现过。思路三种方式。set中嵌套pair 这里使用makepair 同时用hash散列的思想。#include<bits/stdc++.h>u...原创 2020-04-09 21:03:41 · 253 阅读 · 0 评论 -
计蒜客 水果店 map的嵌套
题目链接题意:给你n个水果,每个水果有其对应的城市,并且有相应的水果个数,让你将水果分类。思路:很明显是一对多的这种关系, 但还要保存一下数值。map中自动为键值进行了排序,所以知识点是如何存储数据。这里我使用了auto自动获取类型。同时,.first存储的是第一个键的值,(.second).__ ___是另一组键值。#include<bits/stdc++.h>usi...原创 2020-04-09 19:45:23 · 181 阅读 · 0 评论 -
第十章 数据结构 串的定义,串的存储
文章目录串的基本定义常见例题串的存储方式块链 与线性表的关系。串的基本定义串是一种特殊的线性表。其特殊性体现在它的数据元素仅由一个字符组成。计算机非数值处理的对象经常是字符串数据。比如我们常用的word和wps软件,处理的对象就是串。串还有自身的特性, 常常把一个串作为一个整体来处理。查找某一个单词或某一句话, 很少去查某一个字符。串的操作对象依然是一个串。这种操作就是在一个主串中...原创 2020-04-08 18:56:08 · 330 阅读 · 0 评论 -
栈 —— 数据结构错题整理
错因:马虎错因:我傻了, 肯定只能从栈顶取出啊。原创 2020-04-05 12:07:02 · 236 阅读 · 0 评论 -
第九章 数据结构 栈(dfs递归原理大揭秘)
文章目录栈应用:栈的初始化,判空及取栈顶元素。栈||dfs的嵌套大揭秘栈的存储结构顺序栈链栈栈栈——插入和删除受到限制的线性表。应用:网页中的前进倒退,word中的撤销。在线性表中, 可以在任意位置插入数据。删除任意元素。栈, 是一个线性表,插入和删除的位置限制在线性表的尾部进行。如果要插入x, 只能插入在最后一个元素后面。也只能删除最后一个元素。栈是插入和删除位置受到限定的线...原创 2020-04-05 11:55:51 · 454 阅读 · 0 评论 -
第八章 数据结构 顺序表之链式表
存储特点单链表是一种动态存储空间。建立单链表头插法与尾插法头插法要逆向输入!!!尾插法r永远指向尾节点L指向整个单链表,r指向尾结点。...原创 2020-03-26 15:35:36 · 172 阅读 · 0 评论 -
第四章 数据结构 再次理解线性表+线性表实验作业
线性表基础线性表可以分为 顺序表 和 链式表顺序存储的策略;数据元素的存储对应一块连续的存储空间,数据元素之间的前驱和后续关系通过数据元素在存储器的相对位置来反映。顺序存储除了存储线性表中的数据元素,如何存储线性表中的数据元素间的关系。数据元素之间的前驱和后续关系通过数据元素在存储器的相对位置来反映。如何确定顺序表中,元素的具体位置(已知第一个元素的位置及每个元素占据的空间)。因为...原创 2020-03-20 15:47:15 · 234 阅读 · 0 评论 -
第三章 数据结构 线性表的逻辑结构 和 线性表的顺序存储结构,链式存储结构
线性表是最简单的数据结构,是由0个或多个类型相同的数据元素组成的有限序列。线性表中的元素是一 一对应的。引用集合与线性表的区别在于元素是否可以重复。...原创 2020-03-12 21:41:14 · 1237 阅读 · 0 评论 -
2019icpc沈阳区域赛 A + H题
题目链接A题题意:小伙找女朋友,看n个照片,每个照片有欺骗值,现在要更新真实值。对于第i个照片,前i - 1个比它欺骗值大的照片中的最小欺骗值为它的真实值。如果没有比它大的,那它的真实值就为0。思路:对于前i - 1个数,我们用set储存,同时使用set的自带函数upper_bound。这里需要用iterator迭代器将值表示出来。upper_bound返回的是储存地址,最后要用*来...原创 2020-03-07 21:10:06 · 496 阅读 · 0 评论 -
第二章 数据结构 算法及其描述
算法的特性 :有穷性 :算法的有穷性是指算法必须能在执行有限个步骤之后终止;确切性:算法的每一步骤必须有确切的定义;输入项:一个算法有0个或多个输入,以刻画运算对象的初始情况,所谓0个输入是指算法本身定出了初始条件;输出项:一个算法有一个或多个输出,以反映对输入数据加工后的结果。没有输出的算法是毫无意义的;可行性:算法中执行的任何计算步骤都是可以被分解为基本的可执行的操作步骤,即每个计算...原创 2020-03-04 16:49:13 · 393 阅读 · 0 评论 -
第一章 数据结构 什么是数据结构
今天学习了四种数据结构集合三种基本数据结构线形结构 (qq好友与他的说说)树形结构 (N皇后问题,dfs)图形结构(地铁线路,微信好友之间的关系)四种基本的数据存储结构顺序存储结构链式存储结构索引存储结构哈希(散列)存储结构...原创 2020-03-04 16:08:27 · 139 阅读 · 0 评论 -
Anu Has a Function CodeForces - 1300 位运算 + 思维 + 判断进制数
题目地址思路:根据题目给出的条件,f(f(…f(f(a1,a2),a3),…an−1),an)f(f(\dots f(f(a_1, a_2), a_3), \dots a_{n-1}), a_n)f(f(…f(f(a1,a2),a3),…an−1),an)ep:f(11,6)=(11∣6)−6=15−6=9ep:f(11, 6) = (11|6) - 6 = 15 - 6 = 9...原创 2020-02-23 14:27:58 · 150 阅读 · 0 评论 -
网页跳转 栈的使用
传送门题意:有三个操作,VISIT是打开新的页面,Back向后退, forward向前进。就是模仿我们平时的页面打卡操作。思路;看了题用的是两个stack感觉很巧妙。一个stack用来储存当前的网址,如果Back就将当前的栈首弹出,再存入另一个栈,另一个栈的作用就是储存已经后退过的栈。AC代码package jisuanke;import java.util.Scanner;...原创 2020-02-21 18:28:08 · 368 阅读 · 0 评论 -
经典栈类题目 括号匹配 Java stack
在Java中栈直接继承Stack 使用Stack容器,不向queue是用LinkedList实现的。s.push()压入 pop()弹出值并删除思路:寻找能配成(),太经典了,就像凑成aa 这样消除得到一样 应该先先到使用栈。传送门import java.util.Scanner;import java.util.Stack;public class Main { public ...原创 2020-02-19 20:49:37 · 172 阅读 · 0 评论 -
报数 约瑟夫环报数问题
题意:n个小朋友报数,从1开始,每报m个 这个小朋友就出局,下一个小朋友再从1开始报,最后剩余的小朋友的坐标是多少。思路:利用队列来做。预处理起始位置,每次数到m的小朋友出局,反之放到队列底。import java.awt.List;import java.util.LinkedList;import java.util.Queue;import java.util.Scanner;...原创 2020-02-19 17:31:48 · 262 阅读 · 0 评论 -
字符串弱等于(选做)Java递归
传送门思路:按条件递归即可,注意多种情况。import java.util.Scanner;public class Main { public static boolean solve(String a, String b) { if(a.compareTo(b) == 0) { return true; }else if(a.length() == b.lengt...原创 2020-02-19 15:32:25 · 298 阅读 · 0 评论 -
成绩排序 利用 类 模拟 结构体排序 ArrayList
思路:直接按题意模拟,但要重写一下Comparator.注意字符串的排序用comparaTo();其余没什么好说的。利用类模拟结构体。get√import java.awt.List;import java.util.*;import java.util.Scanner;class node{ String s; int a,b,c,d,sum; node(Strin...原创 2020-02-16 23:41:14 · 158 阅读 · 0 评论 -
数据结构data structure作业 回顾 c语言 数据类型 位运算 指针 结构体 typedef
基本数据类型sizeofchar占据的内存大小是1 个byte; short 占据的内存大小是2 个byte;int占据的内存大小是4 个byte;long占据的内存大小是4 个byte;float占据的内存大小是4 个byte;ps:精度在6~7double占据的内存大小是8 个byte。ps:精度在15 ~ 16.位运算and &or |xor ^非 ~...原创 2020-02-16 17:34:38 · 184 阅读 · 0 评论