33,311
社区成员
发帖
与我相关
我的任务
分享
struct SqList {
int* elem;
int length;
int listsize;
};
int InitList_Sq(SqList& L) { //构造空表
L.elem = 0;
L.length = 0;
L.listsize = 0;
return 1;
}
int InsertList_Sq(SqList& L, int i, int x) { //在第i个位置插入x
if (L.listsize == 0) {
L.elem = new int[1];
L.listsize = 1;
}
if (i<0 || i>L.length) return 0;
if (L.length == L.listsize) {
int* newbase = new int[L.listsize * 2];
if (newbase == 0) return 0;
for (int j = 0; j < L.length; ++j) {
newbase[j] = L.elem[j];
}
delete L.elem;
L.elem = newbase;
L.listsize *= 2;
}
for (int j = L.length; j > i; --j) {
L.elem[j] = L.elem[j - 1];
}
L.elem[i] = x;
L.length++;
return 1;
}
void DeleteList_Sq(SqList& L, int i) { //删除第i个元素
if (i<0 || i>L.length - 1) return 0;
for (int j = i; j < L.length - 1; ++j) {
L.elem[j] = L.elem[j + 1];
}
L.length--;
}
void PrintList_Sq(SqList L) { //打印顺序表
for (int i = 0; i < L.length; ++i) {
if (i) cout << ' ';
cout << L.elem[i];
}
cout << endl;
}