线性表的插入和删除c++
时间: 2023-11-06 15:04:13 浏览: 107
插入操作-数据结构C++
线性表是一种数据结构,其中数据元素按照线性顺序排列,可以进行插入和删除操作。在C++中,可以使用数组或链表来实现线性表。下面是使用数组实现线性表插入和删除的示例代码:
```
#include <iostream>
using namespace std;
const int MAXSIZE = 100; // 线性表最大长度
// 定义线性表结构体
struct List {
int data[MAXSIZE]; // 数据元素
int length; // 线性表长度
};
// 初始化线性表
void InitList(List &L) {
L.length = 0;
}
// 插入数据元素
bool ListInsert(List &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 ListDelete(List &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;
}
// 打印线性表
void PrintList(List L) {
for (int i = 0; i < L.length; i++) {
cout << L.data[i] << " ";
}
cout << endl;
}
int main() {
List L;
InitList(L);
ListInsert(L, 1, 1);
ListInsert(L, 2, 2);
ListInsert(L, 3, 3);
PrintList(L); // 输出:1 2 3
ListDelete(L, 2);
PrintList(L); // 输出:1 3
return 0;
}
```
使用链表实现线性表插入和删除的代码略有不同,具体实现可以参考其他资料。
阅读全文