顺序表的应用代码
时间: 2024-02-23 17:03:19 浏览: 14
以下是一个简单的顺序表的应用代码示例,代码展示了如何创建一个顺序表并进行添加、删除、查找和打印操作:
```c++
#include <iostream>
using namespace std;
const int MAXSIZE = 100; // 定义顺序表的最大长度
// 定义顺序表结构体
struct SeqList {
int data[MAXSIZE]; // 存储元素的数组
int length; // 当前长度
};
// 初始化顺序表
void InitList(SeqList &L) {
L.length = 0;
}
// 向顺序表中插入元素
bool Insert(SeqList &L, int pos, int elem) {
if (pos < 1 || pos > L.length + 1 || L.length >= MAXSIZE) {
return false; // 插入位置非法或者顺序表已满
}
for (int i = L.length; i >= pos; i--) {
L.data[i] = L.data[i - 1]; // 将插入位置及其之后的元素后移一位
}
L.data[pos - 1] = elem; // 插入新元素
L.length++; // 长度加1
return true;
}
// 从顺序表中删除元素
bool Delete(SeqList &L, int pos) {
if (pos < 1 || pos > L.length) {
return false; // 删除位置非法
}
for (int i = pos; i < L.length; i++) {
L.data[i - 1] = L.data[i]; // 将删除位置之后的元素前移一位
}
L.length--; // 长度减1
return true;
}
// 查找顺序表中指定元素的位置
int Search(SeqList L, int elem) {
for (int i = 0; i < L.length; i++) {
if (L.data[i] == elem) {
return i + 1; // 返回元素的位置(从1开始)
}
}
return 0; // 未找到元素
}
// 打印顺序表中的元素
void PrintList(SeqList L) {
for (int i = 0; i < L.length; i++) {
cout << L.data[i] << " ";
}
cout << endl;
}
int main() {
SeqList L;
InitList(L);
// 向顺序表中插入元素
Insert(L, 1, 10);
Insert(L, 2, 20);
Insert(L, 3, 30);
Insert(L, 4, 40);
// 打印顺序表中的元素
PrintList(L); // 输出:10 20 30 40
// 从顺序表中删除元素
Delete(L, 3);
// 打印顺序表中的元素
PrintList(L); // 输出:10 20 40
// 查找顺序表中指定元素的位置
cout << Search(L, 20) << endl; // 输出:2
return 0;
}
```
在上述代码中,我们定义了一个顺序表结构体 `SeqList`,其中包含一个存储元素的数组 `data` 和一个当前长度 `length`。通过 `InitList` 函数可以初始化一个顺序表,通过 `Insert` 函数可以向顺序表中插入元素,通过 `Delete` 函数可以从顺序表中删除元素,通过 `Search` 函数可以查找顺序表中指定元素的位置,通过 `PrintList` 函数可以打印顺序表中的所有元素。