1.1删除最小的元素(唯一)且用表尾元素填充,空表则输出错误信息并退出运行
bool delete_min(sqlist& L, int& e) {
if (L.length == 0) {
cout << "输入为空表" << endl;
return false;
}
int min = L.data[0];
int local = 0;
for (int i = 1; i < L.length; i++) {
if (L.data[i] < min) {
min = L.data[i];
local = i;
}
}
e = min;
L.data[local] = L.data[L.length - 1];
return true;
}
1.2空间复杂度为O1,倒置顺序表
bool reveal_list(sqlist& L) {
int num = L.data[0];
for (int i = 0, j = L.length - 1; i < j; i++,j--) {
L.data[i] = L.data[j];
L.data[j] = num;
num = L.data[i + 1];
}
return true;
}
1.3时间复杂度On,空间O1,删除顺序表为x的所有元素
把所有的不为x的元素往前移动,记录下标
bool delete_list(sqlist& L, int x) {
int num = 0;
for (int i = 0; i < L.length; i++) {
if (L.data[i] != x) {
L.data[num] = L.data[i];
num++;
}
}
L.length = num;
return true;
}