题目描述
给出顺序表的初始数据,实现顺序表的定义、创建、插入、删除与查找操作。
输入
测试次数t
每组测试数据格式如下:
第一行: 正整数n,后跟n个整数
第二行: 插入位置 插入元素
第三行: 删除位置
第四行: 删除元素
第五行: 查找元素
输出
对每个顺序表,首先输出建表后的顺序表。
插入、删除操作,操作成功,输出操作后的顺序表。操作不成功,输出ERROR。
查找操作,查找成功,输出:1 元素位置(位置从1开始)比较次数。查找不成功,输出:0 0 比较次数。
样例输入
2
5 10 20 14 25 50
1 13
10
10
23
7 88 99 77 11 22 33 44
7 100
1
80
22
样例输出
5 10 20 14 25 50
6 13 10 20 14 25 50
ERROR
5 13 20 14 25 50
0 0 6
7 88 99 77 11 22 33 44
8 88 99 77 11 22 33 100 44
7 99 77 11 22 33 100 44
ERROR
1 4 4
代码
#include<iostream>
using namespace std;
#define Maxsize 100
typedef struct {
int *data;
int length;
} SqList;
void InitList(SqList &L) {
L.data = new int[Maxsize];
if (!L.data)
exit(-1);
L.length = 0;
}
bool insertElem(SqList &L, int i, int e) {
if (L.length < 0 || L.length > Maxsize || i < 1 || i > L.length + 1)
return false;
for (int j = L.length + 1; j >= i + 1; j--)
L.data[j] = L.data[j - 1];
L.data