题目描述
实现一个顺序线性表的初始化、插入、删除、访问、清空等操作,调用这些操作,实现如下功能:
- `I a b` -- 在顺序表的第 $a$ 个位置**前**插入新元素,元素值为 $b$
- `D a` -- 删除顺序表中第 $a$ 个位置的元素,并输出该元素值
- `G a` -- 输出顺序表中第 $a$ 个位置的元素值
- `L b` -- 输出顺序表中值为 $b$ 的第一个元素的位置
- `C` -- 清空顺序表
顺序表的定义如下:
```cpp
typedef int ElemType;
typedef struct {
ElemType *elem;
int length;
int listsize;
} Sqlist;
```
输入格式
第一行包含两个整数 $n,m$,分别表示初始顺序表的长度和操作的个数。
第二行包含 $n$ 个整数 $A_1,A_2,\cdots,A_n$,表示初始顺序表内各元素值。
其后 $m$ 行,每行表示一次操作,均为题面描述内五种操作中的一种。数据保证给定的操作一定合法。
- $1\le n\le 10$
- $1\le m\le 50$
- $1\le A_i\le 20$
- $1\le a\le \text{当前顺序表长度}+1$
- $1\le b\le 20$