2-12 线性表循环右移分数 8
作者 陈越
单位 浙江大学
给定顺序表 A=(a1,a2,⋯,a**n),请设计一个时间和空间上尽可能高效的算法将该线性表循环右移指定的 m 位。例如,(1,2,5,7,3,4,6,8) 循环右移 3 位(m=3) 后的结果是 (4,6,8,1,2,5,7,3)。
输入格式:第一行输入 n ( 1≤n≤105)、m(m≥0);第二行输入 n 个整数。所有数字在 int 型整数范围内,同行数字间以空格分隔。
输出格式:输出循环右移 m 位以后的整数序列。数字间以 1 个空格分隔,行首尾不得有多余空格。
输入样例:126 21 2 3 4 5 6
输出样例:15 6 1 2 3 4
答案1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859#include <iostream>using namespace std;// 定义顺序表结构typedef stru ...
2-11 从顺序表 list 中删除第 i 个元素分数 8
作者 陈越
单位 浙江大学
请编写程序,将 n 个整数存入顺序表,对任一指定的第 i 个位置,将这个位置上的元素从顺序表中删除。注意:i 代表位序,从 1 开始,不是数组下标。
输入格式:输入首先在第一行给出正整数 n(≤104);随后一行给出 n 个 int 范围内的整数,数字间以空格分隔;最后一行给出删除位序 i,为 int 范围内的整数。
输出格式:如果删除的位置不合法,则不能删除,在一行中输出句子 错误:不存在这个元素。。无论是否删除成功,都在一行中顺序输出表中的元素,每个元素后面跟一个空格。
输入样例 1:12351 2 3 4 53
输出样例 1:11 2 4 5
输入样例 2:12354 3 6 8 00
输出样例 2:12错误:不存在这个元素。4 3 6 8 0
答案12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849#include <iostream>usin ...
2-10 在顺序表 list 的第 i 个位置上插入元素 x分数 8
作者 陈越
单位 浙江大学
请编写程序,将 n 个整数存入顺序表,对任一给定整数 x,将其插入顺序表中指定的第 i 个位置。注意:i 代表位序,从 1 开始,不是数组下标。
输入格式:输入首先在第一行给出正整数 n(≤104);随后一行给出 n 个 int 范围内的整数,数字间以空格分隔;最后一行给出插入位置 i 和待插入的元素 x,均为 int 范围内的整数。
输出格式:分以下几种情况输出:
如果顺序表中已经有 104 个元素了,则不能插入,在一行中输出句子 错误:表满不能插入。。
如果插入的位置不合法,则不能插入,在一行中输出句子 错误:插入位置不合法。。
无论是否插入成功,都在一行中顺序输出表中的元素,每个元素后面跟一个空格。
输入样例 1:12351 2 3 4 53 8
输出样例 1:11 2 8 3 4 5
输入样例 2:12354 3 6 8 00 1
输出样例 2:12错误:插入位置不合法。4 3 6 8 0
答案123456789101112131415161718192021222 ...
2-9 在顺序表 list 中查找元素 x分数 7
作者 陈越
单位 浙江大学
请编写程序,将 n 个整数存入顺序表,对任一给定整数 x,查找其在顺序表中的位置。
输入格式:输入首先在第一行给出正整数 n(≤104);随后一行给出 n 个 int 范围内的不重复的整数,数字间以空格分隔;最后一行给出待查找的元素 x,也是 int 范围内的整数。
输出格式:在一行中输出 x 在顺序表中的位置,即数组下标。如果没找到,则输出 -1。注意数组下标从 0 开始。
输入样例 1:12351 2 3 4 54
输出样例 1:13
输入样例 2:12354 3 6 8 01
输出样例 2:1-1
答案123456789101112131415161718192021222324252627282930313233343536373839#include <iostream>using namespace std;// 定义顺序表结构typedef struct { int *data; int length;} sqList;// 初始化顺序表vo ...
2-8 合并有序数组分数 7
作者 伍建全
单位 重庆科技大学
给定2个非降序序列,要求把他们合并成1个非降序序列。假设所有元素个数为N,要求算法的时间复杂度为O(N)。
输入格式:输入有4行。第1行是一个正整数m,表示第2行有m个整数,这些整数构成一个非降序序列,每个整数之间以空格隔开。第3行是一个正整数n,表示第4行有n个整数,这些整数也构成一个非降序序列,每个整数之间以空格隔开。
输出格式:把第2行的m个整数和第4行的n个整数合并成一个非降序序列,输出这个整数序列。每个数之间隔1个空格。
输入样例:123461 3 6 6 8 9 42 4 5 7
输出样例:11 2 3 4 5 6 6 7 8 9
答案1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980#include <iostream>using names ...
2-7 运用顺序表实现多项式相加分数 7
作者 胡艳梅
单位 成都理工大学
本题要求输入两个一元多项式,然后输出它们的和(相加后得到的一元多项式)
输入格式:输入一个整数n(表示输入组数),然后依次输入每一组数据:输入一个整数A(表示多项式的项数,小于100),然后输入A对整数,每一对整数表示对应项的指数和系数。
输出格式:对每一组输入,在一行中输出得到的一元多项式。
输入样例:在这里给出一组输入。例如:
1234567891011121314151617181920250 21 45 77 108 1940 32 64 195 -930 34 78 230 -35 97 21
输出样例:在这里给出相应的输出。例如:
125x^0+4x^1+6x^2+19x^4-2x^5+10x^7+19x^87x^4+9x^5+21x^7+2x^8
答案123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 ...
2-6 顺序表(删除)分数 6
作者 邵煜
单位 宁波财经学院
已知一组数据,采用顺序存储结构存储,其中所有的元素为整数。设计一个算法,删除元素值在[x,y]之间的所有元素
输入格式:输入包含三行数据,第一行是表中元素个数,第二行是顺序表的各个元素,第三行是区间x和y。
输出格式:删除元素值在[x,y]之间的所有元素后,输出新的顺序表。(最后无空格)
输入样例:在这里给出一组输入。例如:
1231055 11 9 15 67 12 18 33 6 2210 20
输出样例:在这里给出相应的输出。例如:
155 9 67 33 6 22
答案12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152#include <iostream>using namespace std;// 定义顺序表结构typedef struct { int *data; int length;} sqList;void initLi ...
2-5 集合减法分数 6
作者 朱允刚
单位 吉林大学
给定两个非空集合A和B,集合的元素为30000以内的正整数,编写程序求A-B。
输入格式:输入为三行。第1行为两个整数n和m,分别为集合A和B包含的元素个数,1≤n, m ≤10000。第2行表示集合A,为n个空格间隔的正整数,每个正整数不超过30000。第3行表示集合B,为m个空格间隔的正整数,每个正整数不超过30000。
输出格式:输出为一行整数,表示A-B,每个整数后一个空格,各元素按递增顺序输出。若A-B为空集,则输出0,0后无空格。
输入样例:1235 51 2 3 4 53 4 5 6 7
输出样例:11 2
我的超时代码123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263#include <iostream>using namespace std;// 定义顺序表结构typedef struct { i ...
2-4 在指定位置插入元素分数 6
作者 张志梅
单位 青岛大学
给出 n 个整数,在指定位置 pos(位置从1起始)前插入给定的值 val,请输出插入后的整数序列。
输入格式:包含多组测试。第一行会有一个 T 表示组数 (1<=T<=20),每组测试的第一行输入三个数 n , pos , val,第二行输入n个整数。其中,1<=n<=100,1<=pos<=n+1,1<=val<=100。
输出格式:每组测试输出包含一行,行末不允许有多余的空格。
输入样例:1234525 1 41 2 3 4 56 3 92 4 6 8 0 2
输出样例:124 1 2 3 4 52 4 9 6 8 0 2
答案123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354#include <iostream>using n ...
2-3 最长连续递增子序列分数 6
作者 DS课程组
单位 浙江大学
给定一个顺序存储的线性表,请设计一个算法查找该线性表中最长的连续递增子序列。例如,(1,9,2,5,7,3,4,6,8,0)中最长的递增子序列为(3,4,6,8)。
输入格式:输入第1行给出正整数n(≤105);第2行给出n个整数,其间以空格分隔。
输出格式:在一行中输出第一次出现的最长连续递增子序列,数字之间用空格分隔,序列结尾不能有多余空格。
输入样例:12151 9 2 5 7 3 4 6 8 0 11 15 17 17 10
输出样例:13 4 6 8
答案123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354#include <iostream>using namespace std;// 定义顺序表结构:存储数据的数组和表长typedef struct { int *data; int length;} sqLis ...


