#include<iostream> using namespace std; const int MAX_SIZE = 100; // 定义顺序表的最大长度 typedef struct { int data[MAX_SIZE]; // 存储数据元素的数组 int length; // 当前顺序表的长度 } SqList; // 顺序表类型定义 void InitList(SqList &L) { L.length = 0; // 初始化长度为0 } bool ListInsert(SqList &L, int i, int e) { if (i < 1 || i > L.length + 1) {// 判断插入位置是否合法 return false; } if (L.length >= MAX_SIZE) { // 判断顺序表是否已满 return false; } for (int j = L.length; j >= i; j--) { // 将插入位置后面的元素依次向后移动一位 L.data[j] = L.data[j-1]; } L.data[i-1] = e; // 将新元素插入到指定位置 L.length++; // 长度加1 return true; } bool ListDelete(SqList &L, int i, int &e) { if (i < 1 || i > L.length) { // 判断删除位置是否合法 return false; } e = L.data[i-1]; // 将删除的元素返回 for (int j = i; j < L.length; j++) { // 将删除位置后面的元素依次向前移动一位 L.data[j-1] = L.data[j]; } L.length--; // 长度减1 return true; } void PrintList(SqList &L) { for (int i = 0; i < L.length; i++) { cout << L.data[i] << " "; } cout << endl; } void DestroyList(SqList &L) { L.length = 0; // 将顺序表的长度置为0即可 }编译能实现该程序功能的main函数
时间: 2024-01-24 14:04:25 浏览: 74
好的,以下是能实现该程序功能的main函数:
```
int main() {
SqList L;
InitList(L);
ListInsert(L, 1, 1);
ListInsert(L, 2, 2);
ListInsert(L, 3, 3);
cout << "插入元素后的顺序表:";
PrintList(L);
int e;
ListDelete(L, 2, e);
cout << "删除第2个位置上的元素:" << e << endl;
cout << "删除元素后的顺序表:";
PrintList(L);
DestroyList(L);
cout << "销毁顺序表后的长度:" << L.length << endl;
return 0;
}
```
这个main函数的执行过程如下:
1. 创建一个空的顺序表L,并初始化。
2. 在顺序表L中插入元素1、2、3。
3. 打印插入元素后的顺序表L。
4. 删除顺序表L中第2个位置上的元素,并将其存储到e中。
5. 打印删除元素后的顺序表L。
6. 销毁顺序表L,将其长度置为0。
7. 打印销毁顺序表后的长度。
这个main函数的输出结果如下:
```
插入元素后的顺序表:1 2 3
删除第2个位置上的元素:2
删除元素后的顺序表:1 3
销毁顺序表后的长度:0
```
可以看到,这个main函数成功地调用了InitList、ListInsert、ListDelete、PrintList和DestroyList等函数,完成了顺序表的初始化、插入、删除、打印和销毁等基本操作,并且输出结果正确。
阅读全文