
Data Struct
Lhw_666
这个作者很懒,什么都没留下…
展开
-
DS||优先队列
头文件:#include “queue”声明方法:priority_queue<int> q;//通过操作,按照元素从大到小的顺序出队priority_queue<int,vector<int>, greater<int> > q;//通过操作,按照元素从小到大的顺序出队...原创 2020-03-07 11:07:01 · 169 阅读 · 0 评论 -
DS||dfs and bfs
深度优先搜索输入输入的第一行包含一个正整数n,表示图中共有n个顶点。其中n不超过50。 以后的n行中每行有n个用空格隔开的整数0或1,对于第i行的第j个0或1,1表示第i个顶点和第j个顶点有直接连接,0表示没有直接连接。当i和j相等的时候,保证对应的整数为0。 输入保证邻接矩阵为对称矩阵,即输入的图一定是无向图。输出每一行输出无向图中的一棵生成树,表示按照题目描述中的深度优先遍历算法遍历相...原创 2020-03-07 11:06:47 · 1063 阅读 · 0 评论 -
DS||栈的操作
题目描述对输入整数序列1 2 3 …执行一组栈操作,输出操作的出栈序列。输入每行是一个测试用例,表示一个操作序列。操作序列由P和Q两个符号组成,P表示入栈,Q表示出栈。每个操作序列长度不超过1000。输出对每个操作序列,输出出栈序列,若操作序列有错误,如栈空时执行出栈操作,输出error。样例输入 CopyPQPPQQPPPQPQPPPPQQPPPPQQPPPPQQ样例输出...原创 2020-03-07 11:08:19 · 545 阅读 · 0 评论 -
DS||迷宫
题目描述有一个 10 x 10 的迷宫,起点是‘S’,终点是‘E’,墙是‘#’,道路是空格。一个机器人从起点走到终点。当机器人走到一个通道块,前面已经没有路可走时,它会转向到当前方块的右手方向继续走。如果机器人能够过,则留下足迹‘*’,如果走不通,则留下标记‘!’。下面给出书中的算法,请你模拟机器人的走法输出最终的状态。图:迷宫算法输入一个 10 x 10 的二维字符数组。输出机器人...原创 2019-11-23 21:32:17 · 449 阅读 · 0 评论 -
DS||行编辑程序
题目描述一个简单的行编辑程序的功能是:接收用户从终端输入的程序或数据,并存入用户的数据区。由于用户在终端上进行输入时,不能保证不出差错,因此,若在编辑程序中,“每接收一个字符即存入用户数据区”的做法显然不是很恰当。较好的做法是,设立一个输入缓冲区,用以接收用户输入的一行字符,然后逐行存入用户数据区。允许用户输入出差错,并在发现有误时可以及时更正。例如,当用户发现刚刚键入的一个字符是错的时,可补进...原创 2019-11-23 21:32:07 · 358 阅读 · 0 评论 -
DS||八进制数
将十进制数转换为八进制,并输出。图:将十进制数转换为八进制并输出输入输入包含若干十进制正整数。输出输出相应的八进制数,每个占一行。样例输入 Copy1237891910020345样例输出 Copy123710112346162771#include"stdio.h"#include"stdlib.h"#define MaxLen 1000ty...原创 2019-11-23 21:32:02 · 225 阅读 · 0 评论 -
DS||n阶Hanoi塔问题
题目描述假设有三个分别命名为X、Y和Z的塔座,在塔座X上插有n个直径大小各不相同、依小到大编号为1,2,…,n的圆盘。现要求将X轴上的n个圆盘移至塔座Z上并仍按同样顺序叠排,圆盘移动时必须遵循下列规则: 1)每次只能移动一个圆盘; 2)圆盘可以插在X、Y和Z中的任一塔座上; 3)任何时刻都不能将一个较大的圆盘压在较小的圆盘之上。 如何实现移动圆盘的操作呢?当n=1时,问题比较简单,只要将编号为1...原创 2019-11-23 21:31:53 · 225 阅读 · 0 评论 -
DS||银行排队
题目描述我们大多都有在银行排队的经历,唉,那坑爹的排队啊!现在就让我们来算算我们这些客户平均需要等多久吧。每天刚开始时银行会开m个窗口来为我们total个客户办理业务,当有客户需要办理业务时,先选择可以办理业务的窗口,如果有多个窗口可以办理业务就选择空闲时间最长的窗口,如果有多个窗口空闲的时间一样长,则选择序号小的窗口办理业务。假设我们每个人来到的时间和办理业务所需要的时间(为了简化问题,采用...原创 2019-11-23 21:31:44 · 761 阅读 · 0 评论 -
DS||数据结构作业02 -- 括号的P序列计算
题目描述计算一个合法括号字符串的P序列。括号字符串的P序列是由每个右括号与其对应左括号之间的右括号个数排列而成的。 例如,括号字符串“((()(())))”的P序列为:“1 1 2 4 5”。输入一组合法的括号字符串,每个括号字符串一行。输出每个括号字符串的P序列输出一行,每个数值后有一个空格。样例输入 Copy(())((()(())))样例输出 Copy1 21 1 2 ...原创 2020-03-07 11:07:25 · 763 阅读 · 0 评论 -
DS||栈的操作问题
题目描述假设入栈序列为1 2 3 4 … n,则出栈序列是1到n的一个排列。 假设用P表示入栈操作,用Q表示出栈操作,则栈操作过程可以表示为一个由P和Q构成的序列。 对一个给定的出栈序列,应该如何操作才能得到呢?输入输入由若干行构成,每一行是一组由空格间隔开的整数,第一个整数是序列的长度n(n不大于1000),后面是一个1到n的排列。输出对每一行输入,计算对应的栈操作序列,并输出此操作序...原创 2020-03-07 11:07:36 · 737 阅读 · 0 评论 -
DS||数据结构练习 -- 栈的操作
题目描述对输入整数序列1 2 3 …执行一组栈操作,输出操作的出栈序列。输入每行是一个测试用例,表示一个操作序列。操作序列由P和Q两个符号组成,P表示入栈,Q表示出栈。每个操作序列长度不超过1000。输出对每个操作序列,输出出栈序列,若操作序列有错误,如栈空时执行出栈操作,输出error。样例输入 CopyPQPPQQPPPQPQPPPPQQPPPPQQPPPPQQ样例输出...原创 2020-03-07 11:07:44 · 487 阅读 · 0 评论 -
DS||静态链表
#include <stdio.h>#include <stdlib.h>#include "string.h"#define MAXSIZE 11#define OK 1#define ERROR 0typedef char ElemType[20];void ElemInput(ElemType *ep){ scanf("%s",ep);}void...原创 2019-11-23 21:31:07 · 167 阅读 · 0 评论 -
DS||进制转换
#include"stdio.h"#include"stdlib.h"#define MaxLen 1000typedef int ElemType;#define OK 1#define ERROR 0typedef int Status;typedef struct StackNode{ ElemType data; struct StackNode *next; } S...原创 2019-11-23 21:30:46 · 435 阅读 · 0 评论 -
DS||一元多项式的求和
题目描述一个一元多项式可以看作由若干个一元单项式按降幂排列成的线性表。请编写程序对输入的两个一元多项式求和,并输出求和的结果。输入输入为两个一元多项式,每个一元多项式输入一行,按照降幂依次输入每个单项式的系数和指数,并以-1 -1作为结束。系数和指数均为整数,指数不小于0。输出输出为求和结果多项式,按照降幂依次输出每个单项的系数和指数,每个数值后面用一个空格隔开,输出结果多项式后换行。 ...原创 2019-10-10 20:04:23 · 1572 阅读 · 0 评论 -
DS||集合union
输入有多组测试数据,每组测试数据占两行。第一行是集合A,第一个整数m(0<m<=100)代表集合A起始有m个元素,后面有m个整数,代表A中的元素。第二行是集合B,第一个整数n(0<n<=100)代表集合B起始有n个元素,后面有n个整数,代表B中的元素。每行中整数之间用一个空格隔开。输出每组测试数据输出n+2行:前两行分别输出集合A、集合B中的数据,后面n行是每次从B中...原创 2019-10-10 20:04:11 · 558 阅读 · 0 评论 -
DS||有序线性表的有序合并
输入有多组测试数据,每组测试数据占两行。第一行是集合A,第一个整数m(0<=m<=100)代表集合A起始有m个元素,后面有m个非递减排序的整数,代表A中的元素。第二行是集合B,第一个整数n(0<=n<=100)代表集合B起始有n个元素,后面有n个非递减排序的整数,代表B中的元素。每行中整数之间用一个空格隔开。输出每组测试数据只要求输出一行,这一行含有 m+n 个来自集...原创 2019-10-10 20:04:01 · 903 阅读 · 0 评论 -
DS||单链表反转
题目描述根据一个整数序列构造一个单链表,然后将其反转。例如:原单链表为 2 3 4 5 ,反转之后为5 4 3 2输入输入包括多组测试数据,每组测试数据占一行,第一个为大于等于0的整数n,表示该单链表的长度,后面跟着n个整数,表示链表的每一个元素。整数之间用空格隔开输出针对每组测试数据,输出包括两行,分别是反转前和反转后的链表元素,用空格隔开 如果链表为空,则只输出一行,list is...原创 2019-10-10 20:03:48 · 295 阅读 · 0 评论 -
DS||有序单链表删除重复元素
题目描述根据一个递增的整数序列构造有序单链表,删除其中的重复元素输入输入包括多组测试数据,每组测试数据占一行,第一个为大于等于0的整数n,表示该单链表的长度,后面跟着n个整数,表示链表的每一个元素。整数之间用空格隔开输出针对每组测试数据,输出包括两行,分别是删除前和删除后的链表元素,用空格隔开 如果链表为空,则只输出一行,list is empty样例输入 Copy5 1 2 3 4...原创 2019-10-10 20:03:37 · 1070 阅读 · 0 评论 -
DS||约瑟环问题
题目描述将m个孩子从1到m编上号,按序号围坐成一个圈,从1号孩子开始数,每数到n时,被数到的孩子即离开圈子,然后从下一个孩子开始,再从1开始数,如此不断地数下去,只到只剩下最后一个孩子,问剩下的孩子是几号?输入输入为一组整数对,每个整数对占一行,整数对的第一个整数表示m,即孩子的个数,第二个整数表示n,即被数到n的孩子将离开。 0<m<10000, n>0 输入以0 0作为结束。输出每组...原创 2019-10-10 20:03:24 · 271 阅读 · 0 评论 -
DS||一元多项式的求积
题目描述一个一元多项式可以看作由若干个一元单项式按降幂排列成的线性表。请编写程序对输入的两个一元多项式求积,并输出求积的结果。输入输入为两个一元多项式,每个一元多项式输入一行,按照降幂依次输入每个单项式的系数和指数,并以-1 -1作为结束。 系数和指数均为整数,指数不小于0。输出输出为求积结果多项式,按照降幂依次输出每个单项的系数和指数,每个数值后面用一个空格隔开,输出结果多项式后换行。...原创 2019-10-10 20:03:11 · 289 阅读 · 0 评论 -
DS||简单除法
题目描述完成除法运算,输入为多行数据,每行包括两个整数a和b,用空格隔开。针对每行数据,输出a÷b的结果,结果四舍五入,如果b等于0,输出error输入多行数据,每行两个整数输出多行数据,每行一个整数,或error样例输入 Copy1 32 0样例输出 Copy0error提示输入参考:int a,b;while(cin >> a >> b)...原创 2019-09-19 20:48:03 · 1095 阅读 · 0 评论 -
DS||判断三角形形状
题目描述编写程序,根据三角形三条边的长度判断该三角形是哪种三角形?三角形的类型包括:等边三角形、等腰三角形、直角三角形、普通三角形也有可能,无法组成三角形输入输入包括多行数据,每行包括三个正整数,a,b,c代表三角形三条边的长度输出针对每行输入,做如下处理后换行:如果该三角形是等边三角形,输出DB如果不是等边三角形,是等腰三角形,输出DY如果不是等腰三角形,是直角三角形,输出Z...原创 2019-09-19 20:47:41 · 691 阅读 · 0 评论 -
DS||该谁发球了
题目描述乒乓球是一项很受国人欢迎的运动,假设A和B对打,每次都是A先发球,那么乒乓球的发球规则如下:1、一方得11分,另一方得分小于等于9分,比赛结束,前者获胜;2、如果出现10:10的比分,那么比赛进入延长赛,双方轮流发一次球,当分差是2分时比赛结束,得分多者获胜;3、其它情况,双方轮流发2次球;请编写程序,根据当前比分判断该谁发球了?输入输入包括多行数据,每行数据包括两个正整数a...原创 2019-09-19 20:47:54 · 1096 阅读 · 0 评论 -
DS||递归求和
题目描述给出一个递归公式f(n)=n+f(n-1),其中n为小于等于10000的正整数,f(0)=0,给定n,求f(n)的值输入输入包括一个正整数n,n<=10000输出输出f(n)样例输入 Copy1样例输出 Copy1#include "stdio.h"int f(int n){ if(n<=1) return 1; else return n+f(...原创 2019-09-19 20:47:17 · 743 阅读 · 0 评论 -
DS||简单扑克牌游戏(一)
题目描述一种简单的扑克牌游戏规则是:两个人玩,每个人手中两张牌,不考虑纸牌的花色,且纸牌的数字大小为1到10,比较规则如下:1、若两张牌数字相同,称为对子,比数字不同的两张牌大;2、若两个人都为对子,则数字大的对子赢;3、若两个人的都不是对子,则比较两张纸牌数字之和的个位数,个位数大的赢;4、其它情况打平输入输入包括多行,每行四个数字,分别代表A和B手中的两张纸牌。输出对每行输入...原创 2019-09-17 10:13:03 · 1010 阅读 · 0 评论 -
DS||升级版跑跑卡丁车
题目描述跑跑卡丁车是NEXON公司出品的一款休闲类赛车竞速游戏。与其他竞速游戏不同,跑跑卡丁车首次在游戏中添加了漂移键。游戏以“全民漂移”为宣传词,而角色则使用了泡泡堂中的人物,角色可以驾驶卡丁车在沙漠、城镇、森林、冰河、矿山、墓地等多种主题的赛道上进行游戏。玩家通过积累比赛次数或积累游戏时间,来获得游戏道具奖励。运营商会不定期推出任务,只要完成任务要求,就可以得到不同的物品、金币、经验。进入...原创 2019-09-17 10:12:34 · 291 阅读 · 0 评论 -
DS||Simply Syntax
题目描述In the land of Hedonia the official language is Hedonian. A Hedonian professor had noticed that many of her students still did not master the syntax of Hedonian well. Tired of correcting the many...原创 2019-09-17 10:25:27 · 213 阅读 · 0 评论 -
DS||number 1
#include<stdio.h> #include<malloc.h>#define OK 1 //执行成功 #define ERROR 0 //执行出错 typedef int ElemType;void ElemInput(ElemType *e) //输入 { scanf("%d",e);};void ElemOutput(ElemType e)...原创 2019-09-19 23:02:01 · 168 阅读 · 0 评论 -
DS||Status
#include<stdio.h> #include<malloc.h>typedef int Status;#define OK 1 //执行成功 #define ERROR 0 //执行出错 typedef struct{ int a,b,c;} ElemType;Status GetLength(ElemType a, int *len){ i...原创 2019-09-19 23:29:19 · 220 阅读 · 0 评论 -
DS||线性表顺序存储结构
#include<stdio.h> #include<malloc.h> #define OK 1 //执行成功 #define ERROR 0 //执行出错 #define MAXSIZE 100typedef int ElemType;typedef int Status;typedef struct{ ElemType *dataspace; //...原创 2019-09-20 09:11:26 · 280 阅读 · 0 评论 -
DS||线性表链式存储结构
#include<stdio.h> #include<malloc.h> #define OK 1 //执行成功 #define ERROR 0 //执行出错 #define MAXSIZE 100typedef int ElemType;typedef int Status;typedef struct LinkNode{ ElemType data;...原创 2019-09-20 11:03:42 · 182 阅读 · 0 评论 -
DS||一元多项式的求导
题目描述一个一元多项式可以看作由若干个一元单项式按降幂排列成的线性表。请编写程序对输入的一元多项式进行求导,并输出求导的结果。输入输入为一个一元多项式,按照降幂依次输入每个单项式的系数和指数,并以-1 -1作为结束。系数和指数均为整数,指数不小于0。输出输出为求导结果多项式,按照降幂依次输出每个单项的系数和指数,每个数值后面用一个空格隔开,输出结果多项式后换行。 系数为0的单项式不得输出...原创 2019-11-23 21:30:54 · 1167 阅读 · 1 评论 -
DS||线性表压缩
题目描述将一个含有零元的线性表中的零元删除,其他非零元的相对顺序不变,称为线性表的压缩。每一个非零元压缩后的新下标与原下标之差乘以元素值称为压缩代价。编写程序对线性表进行压缩,并计算所有非零元的压缩代价的总和。输入输入的第一行为测试用例数M,0<M≤100。 从第二行开始,每行为一个测试用例。每个测试用例为一组空格隔开的整数,第一个整数为线性表的表长N,0≤M≤100,其后的N个整数为线性表...原创 2019-11-23 21:29:59 · 196 阅读 · 0 评论 -
DS||大整数加法
题目描述计算两个大整数的和。大整数是指超过了c,c++表示范围的整数,如1234567890000000000000000000输入输入包括两个大整数,每个大整数不超过100位,用空格或者换行隔开输出输出两个大整数的和样例输入 Copy222222222222222222222333333333333333333333样例输出 Copy555555555555555555555...原创 2019-11-23 21:30:15 · 290 阅读 · 0 评论 -
DS||一元多项式求积、求和(线性表)
#include"stdio.h"#include<malloc.h> #define Maxlen 1000typedef int ElemType;#define Success 1#define ERROR 0typedef int Status;typedef struct PolyNode{ int coef; int exp; struct Po...原创 2020-03-07 11:07:54 · 655 阅读 · 0 评论 -
DS||链表的基本操作
链表是数据结构中一种最基本的数据结构,它是用链式存储结构实现的线性表。它较顺序表而言在插入和删除时不必移动其后的元素。现在给你一些整数,然后会频繁地插入和删除其中的某些元素,会在其中某些时候让你查找某个元素或者输出当前链表中所有的元素。下面给你基本的算法描述:图1:链表类型的定义以及获得链表元素的算法描述图2:链表的插入算法描述图3:链表的删除算法描述图4:链表的创建算法描述输...原创 2019-10-10 20:02:59 · 404 阅读 · 0 评论 -
DS||仙人掌残影
题目描述在美丽的BUCT,有一名大二的同学,他的速度是众所周知的,跑100米仅仅用了2秒47,在他跑步过程中会留下残影的哎,大家很想知道他是谁了吧,他叫仙人球,既然名字这样了,于是他的思想是单一的,他总是喜欢从一点出发,经过3次转折(每次向右转90°),回到出发点,而且呢,他每次转折前总是跑相同长度的路程,所以很多人都想知道如果用‘1’算他跑步出发的第一个残影的话,那么回到起点的时候,他的残影是...原创 2019-09-19 20:47:07 · 477 阅读 · 0 评论