过程在第pos个位置插入删除第pos个元素后续待补充整体代码
过程 在第pos个位置插入
short int ListInsert(SeqList &L, int pos, int elem) {
//合法判断
if (pos < 1 || pos > L.length + 1) {
return (short int) 1;
} else if (L.length >= InitSize) {
return (short int) 2;
}
for (int i = L.length; i >= pos; i--) {
L.data[i] = L.data[i - 1];
}
L.data[pos - 1] = elem;
L.length++;
return (short int) 3;
}
删除第pos个元素
short int ListDelete(SeqList &L,int pos, int &e) {
//合法判断
if (pos < 1 || pos > L.length) {
return (short int) 1;
} else if (L.length == 0) {
return (short int) 2;
}
//pos合理
e = L.data[pos - 1];
for (int i = pos; i < L.length; i++) {
L.data[i - 1] = L.data[i];
}
//避免脏数据
L.data[L.length - 1] = 0;
L.length--;
return (short int) 3;
}
后续待补充
整体代码
#includeusing namespace std; #define InitSize 10 typedef struct { int data[InitSize]; int length; }SeqList; short int ListInsert(SeqList &L, int pos, int elem); void initList(SeqList &L); //删除第pos个元素,并将值传给e short int ListDelete(SeqList &L,int pos, int &e); //输出元素 void print(SeqList L); int main() { SeqList L; initList(L); L.data[0] = 1; L.data[1] = 2; L.data[2] = 3; L.length = 3; print(L); short int flag; flag = ListInsert(L, 4, 4); if (flag == 1) { printf("插入位置不合法......n"); } else if (flag == 2) { printf("当前无位置可插入......n"); } else if (flag == 3) { printf("插入成功,当前表内内容:"); print(L); system("pause"); } int e; flag = ListDelete(L,3,e); if (flag == 1) { printf("删除位置不合法!n"); } else if (flag == 2) { printf("当前表中已经没有元素可以删除!"); } else if (flag == 3) { printf("删除成功,删除的元素是:%dn",e); printf("当前表中元素:a"); print(L); } return 0; } short int ListInsert(SeqList &L, int pos, int elem) { //合法判断 if (pos < 1 || pos > L.length + 1) { return (short int) 1; } else if (L.length >= InitSize) { return (short int) 2; } for (int i = L.length; i >= pos; i--) { L.data[i] = L.data[i - 1]; } L.data[pos - 1] = elem; L.length++; return (short int) 3; } void initList(SeqList &L) { L.length = 0; } void print(SeqList L) { for (int i = 0; i < L.length; i++) { printf("%d ", L.data[i]); } printf("n"); } short int ListDelete(SeqList &L,int pos, int &e) { //合法判断 if (pos < 1 || pos > L.length) { return (short int) 1; } else if (L.length == 0) { return (short int) 2; } //pos合理 e = L.data[pos - 1]; for (int i = pos; i < L.length; i++) { L.data[i - 1] = L.data[i]; } //避免脏数据 L.data[L.length - 1] = 0; L.length--; return (short int) 3; }



