整体代码
#include <stdio.h> #define N 20 //存储容量 typedef int SLDataType; //方便修改存储的数据类型 typedef struct SeqList { SLDataType a[N]; int size; //表示数组中存储了多少个数据 }SL; void SeqListInit(SL* ps)//初始化 { ps->a[0] = 0; ps->size = 0; } void SeqListInsert(SL* ps, int pos, SLDataType x)//在pos位置插入数据 { if (pos <= 0 && pos > ps->size + 1) { return; } else { //挪动数据 if (ps->size == 0) { int end = 0; } else { int end = ps->size - 1; while (end >= pos - 1) { ps->a[end + 1] = ps->a[end]; end--; } } ps->a[pos - 1] = x; ps->size++; } } void SeqListErase(SL* ps, int pos)//在pos位置删除数据 { if (pos <= 0 && pos > ps->size) { return; } int begin = pos; while (begin < ps->size) { ps->a[begin - 1] = ps->a[begin]; begin++; } ps->size--; } int main() { SL Sq; int i = 0; SeqListInit(&Sq); for (i = 1; i <= 8; i++) { SeqListInsert(&Sq, i, i); } for (i = 0; i < 8; i++) { printf("%d\t", Sq.a[i]); } printf("\n"); SeqListInsert(&Sq, 3, 10); for (i = 0; i < 9; i++) { printf("%d\t", Sq.a[i]); } printf("\n"); SeqListErase(&Sq, 3); for (i = 0; i < 8; i++) { printf("%d\t", Sq.a[i]); } return 0; }
pos位置插入数据
这个写得比较详细,想尽量把每个思路、步骤都展示出来。
pos位置删除数据
在看完前面的基础上,这个简略一些,只展示大体思路