- 顺序表基础练习
【问题描述】
要求使用插入元素方法建立顺序表,通过查询方法找到输入的元素值,并删除第一个等于输入值的元素,最后输出表中元素。
【输入形式】
第一行输入顺序表长度N,
第二行输入N个元素
第三行输入待查找删除的元素。
【输出形式】
输出删除元素后的顺序表。
【样例输入1】
5
10 12 14 18 12
12
【样例输出1】
10 14 18 12
【样例输入2】
3
10 18 12
13
【样例输出2】
10 18 12
#includeint main() { int n,m; scanf("%d",&n); int b[n]; for(int i=0;i 顺序表实现集合差集
【问题描述】
设两个集合A、B用顺序表表示,求A-B。
【输入形式】
第一行输入两个整数N、M(大于0小于100),分别表示两个集合的长度;
第二行输入第一个集合的N个元素;
第三行输入第二个集合的M个元素;
【输出形式】
输出第一个集合和第二个集合的差集。(若差集为空集,则输出*)
【样例输入1】
5 4
4 23 -9 30 6
23 45 6 2
【样例输出1】
4 -9 30
【样例输入2】
4 6
10 20 30 40
10 20 30 40 50 60
【样例输出2】
*#includeint main() { int n,m; scanf("%d %d",&n,&m); int a[n],b[m]; for(int i=0;i 将顺序表非零元素依次移到表的前端
【问题描述】
将顺序表中所有非零元素依次移到表的前端。
【输入形式】
第一行输入整数N表示表长;
第二行输入N个整数,可包含零。
【输出形式】
输出将非零元素移到前端的表中元素,以空格作为分隔。
【样例输入】
6
2 0 -1 0 5 8
【样例输出】
2 -1 5 8 0 0
【评分标准】
用一个函数实现该方法。#includeint main() { int n; scanf("%d",&n); int a[n]; for(int i=0;i 递增顺序表插入
【问题描述】
设有递增有序顺序表,实现其插入元素后依然有序。
【输入形式】
第一行输入一个N(N不大于100);
第二行输入N个整数(假设输入序列按照递增顺序,以空格分隔);
第三行输入一个整数M(欲插入数据);
【输出形式】
输出插入M后的顺序表。
【样例输入】
5
12 25 35 98 125
77
【样例输出】
12 25 35 77 98 125
【评分标准】
功能实现要求写成算法函数形式,并利用顺序表基本操作。#includeint main() { int n,m; scanf("%d",&n); int a[n+1]; for(int i=0;i a[i-1] && m=i;j--){ a[j+1]=a[j]; } a[i]=m; } } for (int i = 0; i <= n; i++){ printf("%d ",a[i]); } return 0; } 约瑟夫环问题(顺序表实现)
【问题描述】
约瑟夫环问题:N个人围成一圈,从第一个开始报数,第M个将被杀掉,最后剩下一个,其余人都将被杀掉。例如N=6,M=5,被杀的顺序是:5,4,6,2,3,1。
【输入形式】
输入两个正整数N和M,N表示N个人,M表示报数到M;
【输出形式】
输出依次出列的序号。以空格作为分隔。
【样例输入1】
6 5
1 2 3 4 5 6
【样例输出1】
5 4 6 2 3 1
【样例输入2】
3 3
3 2 1
【样例输出2】
1 3 2#includeint main() { int n,m,r; int i,j=0,s=0,l; scanf("%d %d",&n,&m); int a[n],b[n]; for(i=0;i



