#include <iostream>
#define Max 7 // 最大数组长度
typedef int Book; // 定义 Book 类型
// 顺序表结构
struct SqList {
Book elem[Max]; // 存放元素的数组
int length; // 当前的元素数量
};
// 删除函数:在顺序表 L 的位置 i 删除元素
int Delete(SqList& L, int i) {
// 1. 检查删除位置是否合法
if (i < 1 || i > L.length) {
std::cout << "删除位置不合法!" << std::endl;
return -1;
}
// 2. 如果表中有数据,移动元素为删除腾出空间
for (int j = i; j < L.length; j++) {
L.elem[j - 1] = L.elem[j]; // 将元素前移
}
// 3. 更新顺序表的长度
L.length--;
return 0; // 返回 0 表示删除成功
}
int main() {
SqList L; // 创建一个顺序表
L.length = 5; // 初始化长度为5
L.elem[0] = 1;
L.elem[1] = 2;
L.elem[2] = 3;
L.elem[3] = 4;
L.elem[4] = 5;
// 输出原始数据
std::cout << "原数据: ";
for (int i = 0; i < L.length; i++) {
std::cout << L.elem[i] << " ";
}
std::cout << std::endl;
// 删除第2个位置的元素(值为 2)
Delete(L, 2);
// 输出删除后的数据
std::cout << "删除后的数据: ";
for (int i = 0; i < L.length; i++) {
std::cout << L.elem[i] << " ";
}
std::cout << std::endl;
return 0;
}