数据结构顺序表操作代码
时间: 2024-04-22 11:18:58 浏览: 13
顺序表是一种常见的数据结构,它可以用数组实现。下面是一些常见的顺序表操作代码:
1. 初始化顺序表:
```c++
#define MAX_SIZE 100 // 定义顺序表的最大长度
typedef struct {
int data[MAX_SIZE]; // 用数组存储数据元素
int length; // 当前顺序表的长度
} SeqList;
void InitList(SeqList &L) {
L.length = 0; // 初始化长度为0
}
```
2. 插入元素到顺序表中:
```c++
bool Insert(SeqList &L, int pos, int elem) {
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] = elem; // 在插入位置插入新元素
L.length++; // 长度加1
return true;
}
```
3. 删除顺序表中指定位置的元素:
```c++
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;
}
```
4. 查找顺序表中指定元素的位置:
```c++
int Find(SeqList L, int elem) {
for (int i = 0; i < L.length; i++) {
if (L.data[i] == elem) {
return i + 1; // 返回元素在顺序表中的位置
}
}
return -1; // 未找到元素
}
```
5. 获取顺序表中指定位置的元素:
```c++
bool GetElem(SeqList L, int pos, int &elem) {
if (pos < 1 || pos > L.length) {
return false; // 获取位置不合法
}
elem = L.data[pos - 1]; // 获取指定位置的元素
return true;
}
```