c++数据结构顺序表插入和删除代码
时间: 2023-07-30 16:12:53 浏览: 126
顺序表是一种基于数组的数据结构,可以实现随机访问和快速插入删除操作。以下是 C++ 实现顺序表插入和删除的代码示例:
```c++
#include <iostream>
using namespace std;
const int MAX_SIZE = 100; // 定义最大长度
// 定义顺序表结构体
typedef struct {
int data[MAX_SIZE]; // 存放数据
int length; // 当前长度
} SeqList;
// 初始化顺序表
void InitList(SeqList &L) {
L.length = 0;
}
// 插入元素
bool ListInsert(SeqList &L, int pos, int val) {
if (pos < 1 || pos > L.length + 1) {
return false; // 插入位置不合法
}
if (L.length >= MAX_SIZE) {
return false; // 顺序表已满
}
for (int i = L.length; i >= pos; i--) {
L.data[i] = L.data[i - 1]; // 依次后移
}
L.data[pos - 1] = val; // 插入新元素
L.length++; // 长度加一
return true;
}
// 删除元素
bool ListDelete(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--; // 长度减一
return true;
}
// 输出顺序表
void PrintList(SeqList L) {
for (int i = 0; i < L.length; i++) {
cout << L.data[i] << " ";
}
cout << endl;
}
int main() {
SeqList L;
InitList(L);
ListInsert(L, 1, 10);
ListInsert(L, 2, 20);
ListInsert(L, 3, 30);
PrintList(L); // 输出 10 20 30
ListDelete(L, 2);
PrintList(L); // 输出 10 30
return 0;
}
```
这里使用了结构体来定义顺序表,其中 `data` 数组存放数据, `length` 表示当前长度。`InitList` 函数用于初始化顺序表, `ListInsert` 函数用于插入元素, `ListDelete` 函数用于删除元素, `PrintList` 函数用于输出顺序表。
阅读全文