
数据结构
innutritious
我是fw。
展开
-
SDUT 数据结构之图论 从起点到终点的最短步数(BFS)
Description在古老的魔兽传说中,有两个军团,一个叫天灾,一个叫近卫。在他们所在的地域,有n个隘口,编号为1…n,某些隘口之间是有通道连接的。其中近卫军团在1号隘口,天灾军团在n号隘口。某一天,天灾军团的领袖巫妖王决定派兵攻打近卫军团,天灾军团的部队如此庞大,甚至可以填江过河。但是巫妖王不想付出不必要的代价,他想知道在不修建任何通道的前提下,部队是否可以通过隘口及其相关通道到达近卫军团展开攻击;如果可以的话,最少需要经过多少通道。由于n的值比较大(n<=1000),于是巫妖王找到了擅长编程的原创 2020-11-29 17:31:17 · 275 阅读 · 0 评论 -
SDUT 数据结构之图论 迷宫探索
Description有一个地下迷宫,它的通道都是直的,而通道所有交叉点(包括通道的端点)上都有一盏灯和一个开关;请问如何从某个起点开始在迷宫中点亮所有的灯并回到起点?Input连续T组数据输入,每组数据第一行给出三个正整数,分别表示地下迷宫的结点数N(1 < N <= 1000)、边数M(M <= 3000)和起始结点编号S,随后M行对应M条边,每行给出一对正整数,表示一条边相关联的两个顶点的编号。Output若可以点亮所有结点的灯,则输出从S开始并以S结束的序列,序列中相邻的原创 2020-11-29 17:04:14 · 205 阅读 · 0 评论 -
SDUT 数据结构之图论 判断可达性
Description在古老的魔兽传说中,有两个军团,一个叫天灾,一个叫近卫。在他们所在的地域,有n个隘口,编号为1…n,某些隘口之间是有通道连接的。其中近卫军团在1号隘口,天灾军团在n号隘口。某一天,天灾军团的领袖巫妖王决定派兵攻打近卫军团,天灾军团的部队如此庞大,甚至可以填江过河。但是巫妖王不想付出不必要的代价,他想知道在不修建任何通道的前提下,部队是否可以通过隘口及其相关通道到达近卫军团展开攻击。由于n的值比较大(n<=1000),于是巫妖王找到了擅长编程的你 =_=,请你帮他解决这个问题,否原创 2020-11-29 16:43:17 · 153 阅读 · 0 评论 -
SDUT 数据结构之图论 基于邻接矩阵的BFS
Description给定一个无向连通图,顶点编号从0到n-1,用广度优先搜索(BFS)遍历,输出从某个顶点出发的遍历序列。(同一个结点的同层邻接点,节点编号小的优先遍历)Input输入第一行为整数n(0< n <100),表示数据的组数。对于每组数据,第一行是三个整数k,m,t(0<k<100,0<m<(k-1)*k/2,0< t<k),表示有m条边,k个顶点,t为遍历的起始顶点。下面的m行,每行是空格隔开的两个整数u,v,表示一条连接u,v顶点的无向边。Output输出有n行,原创 2020-11-29 16:05:42 · 149 阅读 · 0 评论 -
SDUT 数据结构之图论 图的深度遍历
B - 数据结构实验之图论二:图的深度遍历Description请定一个无向图,顶点编号从0到n-1,用深度优先搜索(DFS),遍历并输出。遍历时,先遍历节点编号小的。Input输入第一行为整数n(0 < n < 100),表示数据的组数。 对于每组数据,第一行是两个整数k,m(0 < k < 100,0 < m < k*k),表示有m条边,k个顶点。 下面的m行,每行是空格隔开的两个整数u,v,表示一条连接u,v顶点的无向边。Output输出有n行,对应n组输出,每行为用空格隔开的原创 2020-11-28 15:36:44 · 190 阅读 · 0 评论 -
SDUT数据结构之二叉树:(先序中序)还原二叉树
D - 数据结构实验之二叉树四:(先序中序)还原二叉树Description给定一棵二叉树的先序遍历序列和中序遍历序列,要求计算该二叉树的高度。Input输入数据有多组,每组数据第一行输入1个正整数N(1 <= N <= 50)为树中结点总数,随后2行先后给出先序和中序遍历序列,均是长度为N的不包含重复英文字母(区分大小写)的字符串。Output输出一个整数,即该二叉树的高度。SampleInput9ABDFGHIECFDHGIBEACOutput5#include原创 2020-11-16 19:05:43 · 172 阅读 · 0 评论 -
C语言数据结构总结:树
树一,树的定义二,树的基本术语三,二叉树的定义四,二叉树的性质和存储结构五,关于二叉树的算法一,树的定义树是n(n>=0)个结点的有限集合。若n=0,称为空树。若n>0,则它满足如下两个条件; ①有且仅有一个特定的称为根(root)的结点。 ②其余结点可分为m(m>=0)个互不相交的有限集合T1,T2….其中每一个集合本身又是一棵树,并称为根的子树。二,树的基本术语①孩子与双亲:结点的子树的根称为该结点的孩子,该结点称为孩子的双亲。②根结点原创 2020-11-15 17:43:55 · 379 阅读 · 0 评论 -
SDUT 数据结构之串:学密码学一定得学程序
Description曾经,ZYJ同学非常喜欢密码学。有一天,他发现了一个很长很长的字符串S1。他很好奇那代表着什么,于是神奇的WL给了他另一个字符串S2。但是很不幸的是,WL忘记跟他说是什么意思了。这个时候,ZYJ不得不求助与伟大的ZP。ZP笑了笑说,这个很神奇的,WL的意思是只要你找到她给你的字符串在那个神奇的字符串的位置,你就会有神奇的发现。ZYJ恍然大悟,原来如此,但是悲剧来了,他竟然不知道怎么找。。。。是的,很囧是不是。所以这时候就需要化身为超级玛丽亚的你现身了,告诉他吧。。。。。。Inp原创 2020-11-06 20:35:33 · 218 阅读 · 0 评论 -
SDUT 数据结构之串:字符串连接
D - 串结构练习——字符串连接Description给定两个字符串string1和string2,将字符串string2连接在string1的后面,并将连接后的字符串输出。连接后字符串长度不超过110。Input输入包含多组数据,每组测试数据包含两行,第一行代表string1,第二行代表string2。Output对于每组输入数据,对应输出连接后的字符串,每组输出占一行。SampleInput123654abssfgOutput123654abssfg#incl原创 2020-11-04 18:24:09 · 528 阅读 · 0 评论 -
SDUT数据结构之串:KMP简单应用
A - 数据结构实验之串一:KMP简单应用Description给定两个字符串string1和string2,判断string2是否为string1的子串。Input输入包含多组数据,每组测试数据包含两行,第一行代表string1(长度小于1000000),第二行代表string2(长度小于1000000),string1和string2中保证不出现空格。Output对于每组输入数据,若string2是string1的子串,则输出string2在string1中的位置,若不是,输出-1。原创 2020-11-04 18:11:25 · 124 阅读 · 0 评论 -
SDUT 数据结构之串:KMP应用
数据结构实验之串三:KMP应用Description有n个小朋友,每个小朋友手里有一些糖块,现在这些小朋友排成一排,编号是由1到n。现在给出m个数,能不能唯一的确定一对值l和r(l <= r),使得这m个数刚好是第l个小朋友到第r个小朋友手里的糖块数?Input首先输入一个整数n,代表有n个小朋友。下一行输入n个数,分别代表每个小朋友手里糖的数量。之后再输入一个整数m,代表下面有m个数。下一行输入这m个数。Output如果能唯一的确定一对l,r的值,那么输出这两个值,否则输出-1原创 2020-11-04 18:04:11 · 146 阅读 · 0 评论 -
SDUT栈与队列之refresh的停车场
K - 数据结构实验之栈与队列十一:refresh的停车场Descriptionrefresh最近发了一笔横财,开了一家停车场。由于土地有限,停车场内停车数量有限,但是要求进停车场的车辆过多。当停车场满时,要进入的车辆会进入便道等待,最先进入便道的车辆会优先进入停车场,而且停车场的结构要求只出去的车辆必须是停车场中最后进去的车辆。现告诉你停车场容量N以及命令数M,以及一些命令(Add num 表示车牌号为num的车辆要进入停车场或便道,Del 表示停车场中出去了一辆车,Out 表示便道最前面的车原创 2020-10-31 17:32:57 · 94 阅读 · 0 评论 -
SDUT数据结构栈与队列之走迷宫
J - 数据结构实验之栈与队列十:走迷宫Description一个由n * m 个格子组成的迷宫,起点是(1, 1), 终点是(n, m),每次可以向上下左右四个方向任意走一步,并且有些格子是不能走动,求从起点到终点经过每个格子至多一次的走法数。Input第一行一个整数T 表示有T 组测试数据。(T <= 110)对于每组测试数据:第一行两个整数n, m,表示迷宫有n * m 个格子。(1 <= n, m <= 6, (n, m) !=(1, 1) ) 接下来n 行,每行原创 2020-10-31 16:08:26 · 159 阅读 · 1 评论 -
SDUT数据结构栈与队列之行编辑器
I - 数据结构实验之栈与队列九:行编辑器Description一个简单的行编辑程序的功能是:接受用户从终端输入的程序或数据,并存入用户的数据区。由于用户在终端上进行输入时,不能保证不出差错,因此,若在编辑程序中,“每接受一个字符即存入用户数据区”的做法显然不是最恰当的。较好的做法是,设立一个输入缓冲区,用以接受用户输入的一行字符,然后逐行存入用户数据区。允许用户输入出差错,并在发现有误时可以及时更正。例如,当用户发现刚刚键入的一个字符是错的时,可补进一个退格符"#",以表示前一个字符无效; 如果原创 2020-10-31 15:11:45 · 130 阅读 · 0 评论 -
SDUT 数据结构栈与队列之下一较大值(二)
Time Limit: 150 ms Memory Limit: 25000 KiBSubmit Statistic DiscussProblem Description对于包含n(1<=n<=100000)个整数的序列,对于序列中的每一元素,在序列中查找其位置之后第一个大于它的值,如果找到,输出所找到的值,否则,输出-1。Input输入有多组,第一行输入t(1<=t<=10),表示输入的组数;以后是 t 组输入:每组先输入n,表示本组序列的元素个数,之后依次输入本组的n原创 2020-10-22 20:16:52 · 112 阅读 · 0 评论 -
SDUT 数据结构链表之数组操作
#include <stdio.h>#include <stdlib.h>struct node{ int data;struct node *next;};struct node *head,*tail;void creat(int n);void right(struct node *head,int a,int b);void delet(struct node *head,int a);void change(struct node *head,i.原创 2020-10-11 09:01:15 · 189 阅读 · 0 评论