#include <iostream>
#define Max 7 // 最大数组长度
typedef int Book; // 定义 Book 类型
// 顺序表结构
struct SqList {
Book elem[Max]; // 存放元素的数组
int length; // 当前的元素数量
};
// 插入函数:在顺序表 L 的位置 i 插入元素 b
int insert(SqList& L, int i, Book b) {
// 1. 检查插入位置是否合法
if (i < 1 || i > L.length + 1) {
std::cout << "插入位置不合法!" << std::endl;
return -1; // 返回 -1 表示插入失败
}
// 2. 检查是否已经满了
if (L.length == Max) {
std::cout << "顺序表已满,无法插入!" << std::endl;
return -1; // 返回 -1 表示插入失败
}
// 3. 如果位置合法且表不满,移动元素为插入腾出空间
for (int j = L.length; j >= i; --j) {
L.elem[j] = L.elem[j - 1]; // 将元素后移
}
// 4. 插入新元素
L.elem[i - 1] = b; // 注意这里是 i - 1,因为 C++ 中是 0-based 索引
// 5. 更新顺序表的长度
L.length++;
return 0; // 返回 0 表示插入成功
}
// 打印顺序表的元素
void printList(const SqList& L) {
for (int i = 0; i < L.length; ++i) {
std::cout << L.elem[i] << " ";
}
std::cout << std::endl;
}
int main() {
SqList L; // 创建一个顺序表
L.length = 0; // 初始化长度为0
// 插入一些元素
insert(L, 1, 10); // 在第1个位置插入元素 10
insert(L, 2, 20); // 在第2个位置插入元素 20
insert(L, 2, 5); // 在第1个位置插入元素 5
// 打印顺序表
printList(L); // 输出顺序表的元素
return 0;
}
顺序表的插入
最新推荐文章于 2025-06-06 23:25:37 发布