编写程序,实现顺序表的创建、插入和删除等基本操作算法
时间: 2024-06-16 20:07:47 浏览: 101
编写程序实现顺序表的创建、插入和删除等基本操作算法,可以按照以下步骤进行:
1. 创建顺序表:首先需要定义一个结构体来表示顺序表,包含两个成员变量,一个是存储数据的数组,另一个是记录当前元素个数的变量。然后在主函数中创建一个顺序表对象,并初始化元素个数为0。
2. 插入元素:插入元素需要先判断顺序表是否已满,如果已满则无法插入。如果未满,则将要插入的元素放到顺序表的末尾,并将元素个数加1。
3. 删除元素:删除元素需要先判断顺序表是否为空,如果为空则无法删除。如果不为空,则将要删除的元素从顺序表中移除,并将元素个数减1。注意,删除元素后,后面的元素需要向前移动填补空缺。
下面是一个示例代码:
```c++
#include <iostream>
using namespace std;
const int MAX_SIZE = 100; // 定义顺序表的最大容量
struct SeqList {
int data[MAX_SIZE]; // 存储数据的数组
int length; // 当前元素个数
};
// 创建顺序表
void create(SeqList& list) {
list.length = 0;
}
// 插入元素
bool insert(SeqList& list, int pos, int value) {
if (pos < 1 || pos > list.length + 1 || list.length == MAX_SIZE) {
return false; // 插入位置非法或顺序表已满
}
for (int i = list.length; i >= pos; i--) {
list.data[i] = list.data[i - 1]; // 后面的元素向后移动
}
list.data[pos - 1] = value; // 插入元素
list.length++; // 元素个数加1
return true;
}
// 删除元素
bool remove(SeqList& list, int pos) {
if (pos < 1 || pos > list.length) {
return false; // 删除位置非法
}
for (int i = pos; i < list.length; i++) {
list.data[i - 1] = list.data[i]; // 后面的元素向前移动
}
list.length--; // 元素个数减1
return true;
}
int main() {
SeqList list;
create(list); // 创建顺序表
insert(list, 1, 10); // 在位置1插入元素10
insert(list, 2, 20); // 在位置2插入元素20
insert(list, 3, 30); // 在位置3插入元素30
remove(list, 2); // 删除位置2的元素
for (int i = 0; i < list.length; i++) {
cout << list.data[i] << " "; // 输出顺序表中的元素
}
cout << endl;
return 0;
}
```
阅读全文