数据结构
Gverzh
这个作者很懒,什么都没留下…
展开
-
图论--病毒扩散--oj4783
病毒扩散原题链接!跪谢大佬修改代码!!!大佬万岁!!!Description2019-ncov的突然出现扰乱了人们的日常生活,它具有极强的传染性,可以快速的在人群中扩散,现在研究人员正在模拟其在人群中的扩散情况.在一个n*m矩阵所示的人群中,*为普通人,#为佩戴口罩的人,@为病毒携带者,已知每秒每位病毒携带者会将病毒传染给相邻八个方向的未戴口罩的普通人。请问 x 秒后会有多少名传染者(初始为第0秒)?Input第一行输入空格分隔的三个数n,m,x代表n行,m列的空间,x秒(n,m<=10原创 2020-12-01 01:13:44 · 281 阅读 · 0 评论 -
传纸条//数据结构 栈和队列 栈 oj2615
原斜体样式题链接:oj2615传纸条Description传纸条是一种在课堂上传递信息的老方法,虽然现在手机短信和QQ聊天越来越普及,但是手写的信息会让人感到一种亲切感。对许多学生而言,在学校里传递一些私秘性的信息是一种令人兴奋的打发时光的方式,特别是在一些令人厌烦的课堂上。XX 和 YY 经常在自习课的时候传纸条来传递一些私密性的信息。但是他们的座位相隔比较远,传纸条要通过其他人才能到达对方。在传递过程中,难免会有一些好奇心比较强的同学偷看纸条的内容。所以他们想到了一个办法,对纸条内容进行加密。原创 2020-07-29 10:19:39 · 547 阅读 · 0 评论 -
二分练习--oj2781
二分练习原题链接Description给你一个序列,然后给你m个元素,让你从序列中找出与每个元素最接近的数字输出来,如果有两个就输出两个。Input多组输入,第一行给你两个数n(0 < n < 10000000),m(0 < m < n),接下来是数列的n个数,然后再输入m个元素,让你找出最接近每个元素的值。如果有两个,按从小到大输出。Output这m个数分别输出最接近每个元素的值,组与组之间输出一个空行。SampleInput8 41 2 3 4 5 6 8原创 2020-11-21 20:56:26 · 166 阅读 · 0 评论 -
字典树---迷之好奇
迷之好奇DescriptionFF得到了一个有n个数字的集合。不要问我为什么,有钱,任性。FF很好奇的想知道,对于数字x,集合中有多少个数字可以在x前面添加任意数字得到。如,x = 123,则在x前面添加数字可以得到4123,5123等。Input多组输入。对于每组数据首先输入n(1<= n <= 100000)。接下来n行。每行一个数字y(1 <= y <= 100000)代表集合中的元素。接下来一行输入m(1 <= m <= 100000),代表有原创 2020-11-04 21:27:30 · 163 阅读 · 0 评论 -
数据结构实验之二叉树一:树的同构
数据结构实验之二叉树一:树的同构Description给定两棵树T1和T2。如果T1可以通过若干次左右孩子互换就变成T2,则我们称两棵树是“同构”的。例如图1给出的两棵树就是同构的,因为我们把其中一棵树的结点A、B、G的左右孩子互换后,就得到另外一棵树。而图2就不是同构的。图1:图2:现给定两棵树,请你判断它们是否是同构的。Input输入数据包含多组,每组数据给出2棵二叉树的信息。对于每棵树,首先在一行中给出一个非负整数N (≤10),即该树的结点数(此时假设结点从0到N−1编号);随后N行原创 2020-10-31 23:50:26 · 192 阅读 · 0 评论 -
kmp - 字符串匹配 - oj
kmp 字符串匹配的话短字符串有可能会含有相同的字符字串所以需要一个next数组存放 前一个字符为尾的连续字符(不含自身字符) 与从第一个字符开始相同的最后一个字符子串的位置(也就是存放 该字符(不含该字符)前边的字符串中 相同的前缀和后缀–后缀的位置)也就是:abcdeabc相当于运行到b时 next数组的当前位置 存放的是b前边的a与第一个字符相同的位置 也就是 abcdeabc 里面a的位置:0abcdeabc相当于运行到c时 next数组的当前位置 存放的是c前边的b与第一个字符相同原创 2020-08-26 19:54:55 · 238 阅读 · 0 评论 -
哈希表 // oj2123 oj1480 oj3379 oj3377
百度百科的解释:以前做过一个题:是将输入的数字当作数组编号,记录这个数字出现的次数比如:定义一个数组 b[100],输入10个数字, 记录这些数字出现的次数伪代码如下:b[100]={0};scanf("%d",&x);b[x]++;printf("%d\n",b[x]);而这里的知识点跟这个差不多,只不过多了一步,缩小输入数字所占的的范围将输入的数字存储的位置变得紧凑模板题:查找练习 hash——出现过的数字 // oj2123#include <stdio.h原创 2020-08-19 19:34:49 · 145 阅读 · 0 评论 -
并查集 oj
并查集 Union Find 路径压缩1.博客详解2.博客详解视频:https://www.bilibili.com/video/BV1Xf4y1y7hs?from=search&seid=8415603373576553634https://www.bilibili.com/video/BV1Rs411H7ig?from=search&seid=8415603373576553634代码:SDUT-第二场周赛第十题:https://paste.ubuntu.com/p/qtP原创 2020-08-12 21:36:37 · 181 阅读 · 0 评论 -
图的遍历--深度优先搜索 dfs
数据结构实验之图论二:图的深度遍历 dfs // oj 2107原创 2020-09-21 17:33:29 · 153 阅读 · 0 评论 -
图的遍历--广度优先搜索 bfs
它跟层序遍历有些相似,不过它又加上了一个邻接表它先是储存邻接表,然后建立一个队,(双向队)先录入第一个数据,然后尾指针依次遍历,然后在头指针这里录入这个结点的邻接结点数据结构实验之图论一:基于邻接矩阵的广度优先搜索遍历 // oj2141 #include <stdio.h>#include <stdlib.h>#include <string.h>int a[110][110]; //邻接矩阵int que[110],head,tail; //队int原创 2020-09-21 17:30:48 · 186 阅读 · 0 评论 -
图的存储方式 // oj3116 oj3117 oj3118 oj3467
图的基本存储的基本方式一 // oj3116 用到了bool数组 :bool数组头文件是 stdbool.h#include <stdbool.h>bool flag [m]; // 声明 bool数组memset ( flag , 0 , sizeof ( flag ) ) ; // 虽然bool类型默认值是0,但是仍要初始化#include <stdio.h>#include <stdlib.h>#include<string.h>原创 2020-08-07 16:36:14 · 148 阅读 · 0 评论 -
二叉查找数 平衡树 // oj2128 oj3373 oj2482
树结构练习——排序二叉树的中序遍历 oj2128做的时候还以为等于关键值的数不会输入呢没想到把等于关键值的情况放在右子树里的时候居然ac了#include <stdio.h>#include <stdlib.h>#include<string.h>struct node{ int data; struct node *l,*r;};int a[1001],k;struct node *in(struct node *st,int k原创 2020-08-12 21:36:58 · 133 阅读 · 0 评论 -
数据结构实验之二叉树七 、八 、二叉树的建立与遍历 、一 // oj3346 2804 2136
数据结构实验之二叉树七:叶子问题 // 先序–层序 叶子结点#include <stdio.h>#include <stdlib.h>#include<string.h>char a[100];int i;struct node{ int data; struct node *l,*r;};struct node *build(){ struct node *st; if(a[i]!=',') {原创 2020-08-12 21:37:17 · 173 阅读 · 0 评论 -
数据结构实验之二叉树四:(先序中序)还原二叉树
原题链接:oj3343数据结构实验之二叉树四:(先序中序)还原二叉树Description给定一棵二叉树的先序遍历序列和中序遍历序列,要求计算该二叉树的高度。Input输入数据有多组,每组数据第一行输入1个正整数N(1 <= N <= 50)为树中结点总数,随后2行先后给出先序和中序遍历序列,均是长度为N的不包含重复英文字母(区分大小写)的字符串。Output输出一个整数,即该二叉树的高度。SampleInput9ABDFGHIECFDHGIBEACOutput5#原创 2020-08-07 16:41:30 · 174 阅读 · 1 评论 -
数据结构实验之二叉树三:统计叶子数 // oj3342
原题链接:oj3342数据结构实验之二叉树三:统计叶子数Description已知二叉树的一个按先序遍历输入的字符序列,如abc,de,g,f, (其中,表示空结点)。请建立二叉树并求二叉树的叶子结点个数。Input连续输入多组数据,每组数据输入一个长度小于50个字符的字符串。Output输出二叉树的叶子结点个数。SampleInputabc,de,g,f,Output3#include <stdio.h>#include <stdlib.h>#incl原创 2020-07-30 10:37:59 · 161 阅读 · 0 评论 -
数据结构 求二叉树的层次遍历 // oj2824 前序 中序 --> 后序--> 层次
原题链接:oj2824求二叉树的层次遍历Description已知一颗二叉树的前序遍历和中序遍历,求二叉树的层次遍历。Input输入数据有多组,输入T,代表有T组测试数据。每组数据有两个长度小于50的字符串,第一个字符串为前序遍历,第二个为中序遍历。Output每组输出这颗二叉树的层次遍历。SampleInput2abcbacabdecdbeacOutputabcabcde#include <stdio.h>#include <stdlib.h>原创 2020-07-29 23:18:16 · 148 阅读 · 0 评论 -
数据结构实验之二叉树五:层序遍历 // oj3344 队列+二叉树 // 先序 --层次
原题链接:oj3344数据结构实验之二叉树五:层序遍历Description已知一个按先序输入的字符序列,如abd,eg,cf,(其中,表示空结点)。请建立二叉树并求二叉树的层次遍历序列。Input输入数据有多行,第一行是一个整数t (t<1000),代表有t行测试数据。每行是一个长度小于50个字符的字符串。Output输出二叉树的层次遍历序列。SampleInput2abd,eg,cf,xnl,i,u,Outputabcdefgxnuli第一次提交的时候出现了 Com原创 2020-07-29 23:16:41 · 217 阅读 · 0 评论 -
数据结构上机测试4.1:二叉树的遍历与应用1 // 先序 中序 ~~ 后序 oj3341
原题链接 :oj3341数据结构上机测试4.1:二叉树的遍历与应用1Description输入二叉树的先序遍历序列和中序遍历序列,输出该二叉树的后序遍历序列。Input第一行输入二叉树的先序遍历序列; 第二行输入二叉树的中序遍历序列。Output输出该二叉树的后序遍历序列。SampleInputABDCEFBDAECFOutputDBEFCAc语言代码:#include <stdio.h>#include <stdlib.h>#include<原创 2020-07-28 19:35:10 · 179 阅读 · 0 评论 -
数据结构 求二叉树的先序遍历 // oj1489 中序 后序 -- 先序
原题链接:oj1489求二叉树的先序遍历Description已知一棵二叉树的中序遍历和后序遍历,求二叉树的先序遍历Input输入数据有多组,第一行是一个整数t (t<1000),代表有t组测试数据。每组包括两个长度小于50 的字符串,第一个字符串表示二叉树的中序遍历序列,第二个字符串表示二叉树的后序遍历序列。Output输出二叉树的先序遍历序列SampleInput2dbgeafcdgebfcalnixulinuxOutputabdegcfxnliu#includ原创 2020-07-29 22:24:21 · 234 阅读 · 0 评论 -
错误情况汇总
运行时出现的警告:‘st’ may be used uninitialized in this functionst 为结构体 struct node *ststruct node{int data;struct node *l,*r;};*原因为:使用时 st 没有创建空间缺少 st=(struct node *)malloc(sizeof(struct node));...原创 2020-07-29 22:56:30 · 403 阅读 · 0 评论 -
数据结构实验之栈与队列九:行编辑器 //栈
原题链接:oj1479数据结构实验之栈与队列九:行编辑器Description一个简单的行编辑程序的功能是:接受用户从终端输入的程序或数据,并存入用户的数据区。由于用户在终端上进行输入时,不能保证不出差错,因此,若在编辑程序中,“每接受一个字符即存入用户数据区”的做法显然不是最恰当的。较好的做法是,设立一个输入缓冲区,用以接受用户输入的一行字符,然后逐行存入用户数据区。允许用户输入出差错,并在发现有误时可以及时更正。例如,当用户发现刚刚键入的一个字符是错的时,可补进一个退格符"#",以表示前一个字符原创 2020-07-29 09:28:42 · 147 阅读 · 0 评论 -
数据结构实验之栈与队列六:下一较大值(二)//栈
原题链接:oj3333数据结构实验之栈与队列六:下一较大值(二)Description对于包含n(1<=n<=100000)个整数的序列,对于序列中的每一元素,在序列中查找其位置之后第一个大于它的值,如果找到,输出所找到的值,否则,输出-1。Input输入有多组,第一行输入t(1<=t<=10),表示输入的组数;以后是 t 组输入:每组先输入n,表示本组序列的元素个数,之后依次输入本组的n个元素。Output输出有多组,每组之间输出一个空行(最后一组之后没有);每组原创 2020-07-28 22:32:08 · 196 阅读 · 0 评论 -
数据结构实验之栈与队列四:括号匹配 //注意while(scanf(“%s“,a)){}
数据结构实验之栈与队列四:括号匹配原题链接 https://acm.sdut.edu.cn/onlinejudge3/problems/2134Description给你一串字符,不超过50个字符,可能包括括号、数字、字母、标点符号、空格,你的任务是检查这一串字符中的( ) ,[ ],{ }是否匹配。Input输入数据有多组,处理到文件结束。Output如果匹配就输出“yes”,不匹配输出“no”SampleInputsin(20+10){[}]Outputyesno#inc原创 2020-07-28 22:51:28 · 174 阅读 · 0 评论 -
数据结构实验之栈与队列一:进制转换 // 数组+栈
原题链接:添加链接描述数据结构实验之栈与队列一:进制转换Description输入一个十进制非负整数,将其转换成对应的 R (2 <= R <= 9) 进制数,并输出。Input第一行输入需要转换的十进制非负整数;第二行输入 R。Output输出转换所得的 R 进制数。SampleInput12798Output2377这个题的另一种思路不过要注意输入的数字为0时https://blog.csdn.net/sinat_28995767/article/deta原创 2020-07-28 22:45:14 · 333 阅读 · 0 评论 -
数据结构实验之栈与队列 双向队列 // oj2088 1466
原题链接:oj2088数据结构实验之栈与队列十一:refresh的停车场Descriptionrefresh最近发了一笔横财,开了一家停车场。由于土地有限,停车场内停车数量有限,但是要求进停车场的车辆过多。当停车场满时,要进入的车辆会进入便道等待,最先进入便道的车辆会优先进入停车场,而且停车场的结构要求只出去的车辆必须是停车场中最后进去的车辆。现告诉你停车场容量N以及命令数M,以及一些命令(Add num 表示车牌号为num的车辆要进入停车场或便道,Del 表示停车场中出去了一辆车,Out 表示便原创 2020-07-29 12:43:37 · 235 阅读 · 0 评论 -
数据结构实验之队列一:排队买饭 // oj2135
数据结构实验之队列一:排队买饭Description中午买饭的人特多,食堂真是太拥挤了,买个饭费劲,理工大的小孩还是很聪明的,直接奔政通超市,哈哈,确实,政通超市里面也卖饭,有好几种菜,做的比食堂好吃多了,价格也不比食堂贵,并且买菜就送豆浆,吸引了不少童鞋。所以有时吧,人还是很多的,排队是免不了的,悲剧的是超市只有两个收银窗口。问题是这样的:开始有两队人在排队,现在咱们只研究第一队,现在我们给每个人一个编号,保证编号各不相同,排在前面的人买完饭就走了,有些人挑完饭就排在后面等待付款,还有一些人比较聪明原创 2020-07-29 22:57:06 · 237 阅读 · 0 评论