C++实现顺序表的建立,清空,插入删除,查找,修改等运算
时间: 2023-12-27 22:22:23 浏览: 82
好的,我来为您回答这个问题。
C++ 实现顺序表的基本操作如下:
1. 建立顺序表
```C++
#define MAXSIZE 100 // 定义顺序表的最大长度
typedef struct {
int data[MAXSIZE]; // 用数组存放数据元素
int length; // 顺序表的当前长度
} SeqList;
// 初始化顺序表
void initList(SeqList &L) {
for(int i = 0; i < MAXSIZE; i++) {
L.data[i] = 0;
}
L.length = 0;
}
```
2. 清空顺序表
```C++
// 清空顺序表
void clearList(SeqList &L) {
for(int i = 0; i < L.length; i++) {
L.data[i] = 0;
}
L.length = 0;
}
```
3. 插入元素
```C++
// 在顺序表的第i个位置插入元素e
bool insertList(SeqList &L, int i, int e) {
if(i < 1 || i > L.length + 1 || L.length >= MAXSIZE) {
return false; // 插入位置不合法或者顺序表已满
}
for(int j = L.length; j >= i; j--) {
L.data[j] = L.data[j - 1]; // 将第i个位置及其后面的元素后移一个位置
}
L.data[i - 1] = e; // 将新元素插入到第i个位置
L.length++; // 顺序表长度加1
return true;
}
```
4. 删除元素
```C++
// 删除顺序表的第i个位置的元素
bool deleteList(SeqList &L, int i) {
if(i < 1 || i > L.length) {
return false; // 删除位置不合法
}
for(int j = i; j < L.length; j++) {
L.data[j - 1] = L.data[j]; // 将第i个位置及其后面的元素前移一个位置
}
L.length--; // 顺序表长度减1
return true;
}
```
5. 查找元素
```C++
// 在顺序表中查找元素e的位置
int searchList(SeqList L, int e) {
for(int i = 0; i < L.length; i++) {
if(L.data[i] == e) {
return i + 1; // 返回元素e在顺序表中的位置
}
}
return 0; // 没有找到元素e
}
```
6. 修改元素
```C++
// 修改顺序表的第i个位置的元素为e
bool modifyList(SeqList &L, int i, int e) {
if(i < 1 || i > L.length) {
return false; // 修改位置不合法
}
L.data[i - 1] = e; // 将第i个位置的元素修改为e
return true;
}
```
以上就是 C++ 实现顺序表的基本操作,希望能对您有所帮助。
阅读全文