#include<stdio.h>
#include<stdlib.h>
#define max 100
typedef int ElemType;

typedef struct {
ElemType data;
int length;
}SeqList
;
//初始化
SeqList
initList()
{
SeqList* L = (SeqList*)malloc(sizeof(SeqList));
L->data = (ElemType*)malloc(sizeof(ElemType) * max);
L->length = 0;
return L;
}

//在尾部添加数据
int appendElem(SeqList* L, ElemType e) {
if (L->length >= max) {
printf(“顺序表已满”);
return 0;
}
L->data[L->length] = e;
L->length++;
return 1;
}

//遍历
void listElem(SeqList* L) {
for (int i = 0; i < L->length; i++)
{
printf(“%d\t”, L->data[i]);
}
printf(“\n”);

}

//插入数据
int insertElem(SeqList* L, int pos, ElemType e) {
if (pos <= L->length - 1) {
for (int i = L->length - 1; i >= pos - 1; i–) {//pos-1 就是要插入的位置
L->data[i + 1] = L->data[i];//pos-1之后的数都往后挪一个位置,把pos-1的位置空出来
}
L->data[pos - 1] = e;
L->length++;
}
return 1;
}

//删除数据
int deleteElem(SeqList* L, int pos, ElemType* e) {
*e = L->data[pos - 1];
if (pos < L->length) {
for (int i = pos; i < L->length; i++)
{
L->data[i - 1] = L->data[i];//把要删除的位置后的数往前挪
}
}
L->length–;
return 1;
}

int main() {

SeqList *list = initList();

appendElem(list, 1);
appendElem(list, 2);
appendElem(list, 3);
appendElem(list, 4);
insertElem(list, 2, 6);
listElem(list);
ElemType delData;
deleteElem(list, 2, &delData);
listElem(list);
return 0;

}