数据结构
For. tomorrow
这个作者很懒,什么都没留下…
展开
-
SWUSTOJ#1103: 删除顺序表中指定区间的数据
1103: 删除顺序表中指定区间的数据题目描述建立顺序表L,将指定区间的数据从顺序表中删除。假设指定区间是合法数据,无序做合法性判断。测试数据为整型。输入第一行是表长n;第二行是表中数据元素;第三行是闭区间。输出删除以后的顺序表中的数据元素。样例输入10 22 32 11 23 43 59 17 65 45 57 10 20样例输出22 32 23 43 59 65 45 57#include<bits/stdc++.h> # define maxsi原创 2021-04-22 00:57:36 · 228 阅读 · 0 评论 -
SWUSTOJ#1102: 顺序表上数据的划分问题的实现
1102: 顺序表上数据的划分问题的实现题目描述建立一个顺序表L,然后以第一个为分界,将所有小于等于它的元素移到该元素的前面,将所有大于它的元素移到该元素的后面。输入顺序表长度n; 顺序表中的数据元素。输出移动后的数据元素。样例输入1032 5 22 43 23 56 54 57 11 25样例输出25 11 23 22 5 32 43 56 54 57#include<bits/stdc++.h> # define maxsize 50using原创 2021-04-22 00:55:15 · 382 阅读 · 0 评论 -
SWUSTOJ#965: 循环队列
965: 循环队列题目描述根据给定的空间构造顺序循环队列,规定队满处理方法为少用一个元素空间。例如,给定5个元素空间构造循环队列,则只能存放4个元素。试根据入队及出队操作判断队列最后的元素存放情况,并输出最后队列中的元素值,即完成给定入队及出列操作后一次性全部出队的元素值。要求采用顺序队列完成,少用一个存储空间的方法区分队列的空和满。输入输入的第一行为一个自然数n,表示要求构造的顺序循环队列空间数。第二行为操作次k,接下来k行为出队入队操作,每行各代表一次操作。入队用in表示,出队用out表原创 2021-04-21 00:10:04 · 809 阅读 · 1 评论 -
SWUST1039: 单链表中信息的分类
1039: 单链表中信息的分类题目描述已知L为设有头结点的单链表中第一个结点的指针,每个结点数据域存放一个字符,该字符可能是英文字母字符或数字字符或其他字符。编写程序构造三个以带头结点的单循环链表表示的线性表,使每个表中只含同一类字符,最后输出链表中的信息。输入链表中的数据元素;输出第一行为数字链表中的信息; 第二行为英文字母字符链表中的信息; 第三行为其它字符链表中的信息。样例输入abc123@$12样例输出12312abc@$#include<stre原创 2021-04-20 00:49:49 · 171 阅读 · 0 评论 -
SWUSTOJ#1101: 顺序表中数据的循环移动
1101: 顺序表中数据的循环移动题目描述设有长度为n(n>1)的顺序表R,将R中保存的序列循环左移P(0 < P <n)个位置,即将R中的数据由(x0,x1,…,xn-1)变换为(xp,xp+1,…,xn-1,x0,x1,…,xp-1)。如果p值不合法,输出“error!”。输入第一行为数据元素个数n; 第二行为n个整数; 第三行为要左移的位数p输出移动后的序列。样例输入101 2 3 4 5 6 7 8 9 105样例输出6 7 8 9 10原创 2021-04-20 00:45:55 · 540 阅读 · 0 评论 -
SWUSTOJ#1045: 集合的交运算的实现
1045: 集合的交运算的实现题目描述假设有两个集合 A 和 B 分别用两个线性表 LA 和 LB 表示,即线性表中的数据元素即为集合中的成员。编程实现集合A和集合B的交运算。输入第一行为集合A的数据元素个数n; 第二行输入n个集合A的数据元素 ; 第三行为集合B的数据元素的个数; 第四行输入m个集合B的数据元素输出A和B的交集样例输入80 5 6 3 8 7 9 1071 3 4 7 8 9 5样例输出5 3 8 7 9#include<bits/st原创 2021-04-19 22:34:09 · 289 阅读 · 0 评论 -
SWUSTOJ#1044: 顺序栈基本操作的实现
1044: 顺序栈基本操作的实现题目描述编程实现顺序栈的初始化、入栈、出栈、取栈顶元素和计算栈中元素个数等基本操作。输入第一行为入栈元素的个数; 第二行依次为入栈的元素; 出栈操作的次数n.输出输出n次出栈后的栈顶元素值。如果是空栈,输出-1.样例输入41 2 3 42样例输出2#include<bits/stdc++.h> # define maxsize 50using namespace std;struct Stack{ int d原创 2021-04-19 21:54:28 · 430 阅读 · 0 评论 -
SWUSTOJ#1037: 集合的并运算的实现(链表)
1037: 集合的并运算的实现题目描述假设有两个集合 A 和 B 分别用两个线性表 LA 和 LB 表示,即线性表中的数据元素即为集合中的成员。编程实现集合A和集合B的并运算。输入第一行为集合A的数据元素个数n 第二行输入n个集合A的数据元素 第三行为集合B的数据元素的个数; 第四行输入m个集合B的数据元素。输出第一行为A和B的并集.样例输入80 5 6 3 8 7 9 1071 3 4 7 8 9 5样例输出0 5 6 3 8 7 9 10 1 4#incl原创 2021-04-19 00:32:55 · 268 阅读 · 0 评论 -
SWUSTOJ#1036: 寻找整数序列的主元素
1036: 寻找整数序列的主元素题目描述已知一个整数序列A=(a0,a1,…an),如果其中有一个元素的出现次数超过n/2,就称该元素为A的主元素,否则就称整数序列没有主元素。例如A=(0,5,5,3,5,7,5,5),则5为主元素。A=(0,5,5,3,5,1,5,7),则A中没有主元素。要求编写程序实现寻找给定整数序列的主元素,如果找到,则输出主元素。如果没有找到,则输出-1。输入第一行为整数序列的个数n 第二行为一个整数序列。输出如果找到主元素,输出主元素的值,否则输出-1。原创 2021-04-18 18:25:15 · 1161 阅读 · 0 评论 -
SWUSTOJ#1035: 定位顺序表中的最大和最小值
1035: 定位顺序表中的最大和最小值题目描述建立长度为n的顺序表,在表中找出最大值和最小值元素所在的位置。输入第一行为顺序表的长度n;第二行为顺序表中的数据元素;输出第一行为最大值的位置;第二行为最小值的位置。本题输出格式:第一行输出需换行,第二行输出无需换行。样例输入71 2 3 4 5 6 7样例输出Lmax=6Lmin=0#include<bits/stdc++.h># define maxsize 50using namespace原创 2021-04-17 22:38:43 · 371 阅读 · 0 评论 -
SWUSTOJ#964: 数细胞(递归搜索)
964: 数细胞题目描述一矩形阵列由数字0到9组成,数字1到9代表细胞,细胞的定义为沿细胞数字上下左右还是细胞数字则为同一细胞,求给定矩形阵列的细胞个数。输入第一行输入两个整数,分别代表矩阵的行和列 输入m*n的矩阵,由数字0到9组成。输出细胞个数。样例输入4 101 2 3 4 5 1 1 1 6 71 0 3 4 5 6 1 5 1 02 0 4 5 6 6 1 6 7 10 0 6 0 6 6 1 0 8 9样例输出1题意: 相邻非零元素的区域个数0原创 2021-04-11 19:41:48 · 1833 阅读 · 2 评论 -
SWUSTOJ#1028: 特定字符序列的判断(栈)
1028: 特定字符序列的判断题目描述 编写一程序,识别依次读入的一个以“#”为结束符的字符序列是否为形如“序列1@序列2”模式的字符序列。期中序列1和序列2中都不含字符“@”,且序列2是序列1的逆序列。例如“a+b@b+a”是满足条件的序列字符,而“1+3@3-1”则不是。输入一个以“#”结束的字符序列。输出是满足条件的字符序列输出“yes!”;否则输出“no!”。样例输入a+b@b+a#样例输出yes!思路: 该题是配对问题,用栈就可以完成。#include&原创 2021-04-17 22:24:52 · 640 阅读 · 0 评论 -
SWUSTOJ#1027: 舞伴问题(队列)
1027: 舞伴问题题目描述假设在周末舞会上,男士们和女士们进入舞厅时,各自排成一队。跳舞开始时,依次从男队和女队的队头上各出一人配成舞伴。若两队初始人数不相同,则较长的那一队中未配对者等待下一轮舞曲。要求编写程序实现舞伴问题。输入输入一共5行,第一行是男生人数m;第二行依次是男生的姓名;第三行是女士的人数n;第四行依次是女士的姓名;第五行是跳舞的轮数。输出配对的男士和女士的姓名。样例输入5A B C D E3F G H2样例输出B G**思路:**该题用队原创 2021-04-17 21:29:40 · 1633 阅读 · 0 评论 -
SWUSTOJ#963: 小偷的背包(递归)
963: 小偷的背包题目描述1、w2、w3 等重物放大缩小字体功能放大缩小,…,恩。问能否从这n件物品中选择若干件放入背包中,使得放入的重量之和正好为S。如果有满足条件的选择,则此背包有解,否则此背包问题无解。输入第一行为物品重量S(整数); 第二行为物品数量n, 第三行为n件物品的重量的序列。输出有解就输出”yes!“,没有解就输出”no!“。样例输入2051 3 5 7 9样例输出yes!思路:枚举所有的情况,当s<W时向背包中装物品,s>W时原创 2021-04-09 20:36:11 · 1032 阅读 · 0 评论 -
SWUSTOJ#1038: 顺序表中重复数据的删除
1038: 顺序表中重复数据的删除题目描述将存储在顺序表中的长度为n的线性表中指定的数据全部删除。输入第一行为顺序表的长度n; 第二行为顺序表中的数据元素; 第三行为指定要删除的元素值。输出如果表不空,输出删除指定值后的线性表;如果删除后表空,则输出-1。样例输入811 22 33 44 44 55 44 6644样例输出11 22 33 55 66#include<bits/stdc++.h># define maxsize 50using n原创 2021-04-19 17:54:47 · 365 阅读 · 0 评论 -
SWUST#961: 进制转换问题(栈)
961: 进制转换问题顺序栈题目描述建立顺序栈或链栈,编写程序实现十进制数到二进制数的转换。输入输入只有一行,就是十进制整数。输出转换后的二进制数。样例输入10样例输出1010#include<iostream>#include<malloc.h># define size 50using namespace std;typedef struct sta{ int data[size]; int top;}Stack;vo原创 2021-04-07 21:39:45 · 365 阅读 · 0 评论 -
SWUST#962: 括号匹配问题(栈)
962: 括号匹配问题题目描述假设表达式中允许包含两种括号:圆括号和方括号。编写一个算法判断表达式中的括号是否正确配对。输入由括号构成的字符串,包含”(“、”)“、”[“和”]“。输出如果匹配输出YES,否则输出NO。样例输入[([])]样例输出YES#include<iostream>#include<malloc.h>#include<string.h># define size 50using namespace s原创 2021-04-08 15:15:49 · 478 阅读 · 0 评论 -
SWUST#956: 约瑟夫问题的实现(循环链表)
956: 约瑟夫问题的实现循环链表题目描述n个人围成一个圈,每个人分别标注为1、2、…、n,要求从1号从1开始报数,报到k的人出圈,接着下一个人又从1开始报数,如此循环,直到只剩最后一个人时,该人即为胜利者。例如当n=10,k=4时,依次出列的人分别为4、8、2、7、3、10,9、1、6、5,则5号位置的人为胜利者。给定n个人,请你编程计算出最后胜利者标号数。(要求用单循环链表完成。)输入第一行为人数n; 第二行为报数k。输出输出最后胜利者的标号数。样例输入104样例输原创 2021-04-02 00:04:13 · 380 阅读 · 0 评论 -
SWUST#957: 逆置单链表(栈)
957: 逆置单链表题目描述建立长度为n的单链表,然后将其数据元素逆置,即第1个元素变为最后一个元素,第2个元素变为倒数第2个元素,以此类推,最后一个元素变为第1个元素。(处理的数据类型为字符型。必须使用链表完成。)> 输入第一行为链表长度n; 第二行为链表中的n个数据元素的值。**输出逆置后的原始的值。样例输入10ABCDEFGHIJ样例输出J I H G F E D C B A...原创 2021-03-31 22:54:33 · 394 阅读 · 0 评论 -
SWUST#954: 单链表的链接
954: 单链表的链接题目描述建立长度为n的单链表A和长度为m的单链表B。编程实现将B表链接在A表的尾端,形成一个单链表A。数据类型指定为字符型。输入第一行为A表的长度n; 第二行为A表中的数据元素; 第三行为B表的长度m; 第四行为B表中的数据元素。输出输出为链接好后的A表中的所有数据元素。样例输入4A B C D61 2 3 4 5 6样例输出A B C D 1 2 3 4 5 6#include<iostream>#include<m原创 2021-03-31 19:55:32 · 778 阅读 · 0 评论 -
SWUST#955: 单链表上查找算法的实现
955: 单链表上查找算法的实现题目描述建立一个长度为n的带头结点的单链表,在该表中寻找第i个结点,若找到,则输出ok,否则输出error。处理数据类型为整型。输入第一行为链表的长度n; 第二行为链表中的数据元素; 第三行为要找的结点i。输出找到就输出ok,没找到就输出error。样例输入101 2 3 4 5 6 7 8 9 105样例输出ok#include<iostream> #include<malloc.h>using nam原创 2021-03-29 21:54:20 · 181 阅读 · 0 评论 -
SWUST#953: 单链表的删除操作的实现
953: 单链表的删除操作的实现题目描述建立长度为n的单链表,删除第i个结点之前的结点。输入第一行为自然数n,表示链式线性表的长度; 第二行为n个自然数表示链式线性表各元素值; 第三行为指定的删除参数i。输出指定删除位置合法时候,输出删除元素后的链式线性表的所有元素,元素之间用一个空格隔开。 输入不合法,输出"error!"。样例输入5 1 2 3 4 5 3样例输出1 3 4 5#include<iostream>#include<mallo原创 2021-03-27 17:51:36 · 1055 阅读 · 0 评论 -
SWUSTOJ#952: 单链表的插入操作的实现
952: 单链表的插入操作的实现题目描述建立长度为n的单链表,在第i个结点之前插入数据元素data。输入第一行为自然数n,表示链式线性表的长度; 第二行为n个自然数表示链式线性表各元素值;第三行为指定插入的位置i;第四行为待插入数据元素data。输出指定插入位置合法时候,输出插入元素后的链式线性表的所有元素,元素之间用一个空格隔开。输入不合法,输出"error!"。样例输入5 1 2 3 4 5 3 6样例输出1 2 6 3 4 5#include<iost原创 2021-03-25 14:21:56 · 932 阅读 · 1 评论 -
SWUSTOJ#941: 有序顺序表的合并操作的实现
##SWUSTOJ#941: 有序顺序表的合并操作的实现题目描述已知两非递减的顺序线性表,要求合并成一个新的非递减顺序线性表。(测试数据为整型)输入输入包含四行,第一行为自然数n,表示第一个非递减顺序线性表的长度; 第二行为n个自然数构成的非递减顺序线性表;第三行为自然数m,表示第二个非递减顺序线性表的长度; 第四行为m个自然数构成的非递减顺序线性表。输出输出:用一行输出合并后的非递减顺序线性表,各数之间用一个空格隔开。样例输入21 332 3 6样例输出1 2原创 2021-03-24 22:31:40 · 1139 阅读 · 1 评论