用c++语言编写 main 函数代码,利用顺序表类 SeqList,定义和初始化一个 int 类型的线性表,在表中添加(push_back)和插入(insert)新的元素
时间: 2024-02-06 13:10:56 浏览: 81
好的,下面是代码实现:
```c++
#include<iostream>
#include"SeqList.h" // 引入顺序表类
using namespace std;
int main() {
SeqList<int> myList(10); // 定义并初始化一个容量为10的 int 型线性表
// 向线性表中添加元素
myList.push_back(1);
myList.push_back(2);
myList.push_back(3);
// 在指定位置插入元素
myList.insert(1, 4);
myList.insert(3, 5);
// 输出线性表
for (int i = 0; i < myList.length(); i++) {
cout << myList[i] << " ";
}
return 0;
}
```
其中,`SeqList.h` 文件是我们自己写的顺序表类,可以参考下面的代码实现:
```c++
template<class T>
class SeqList {
private:
T* data; // 指向动态分配的数组
int maxSize; // 线性表的最大容量
int last; // 线性表中最后元素的位置(下标)
public:
// 构造函数
SeqList(int size) {
data = new T[size];
maxSize = size;
last = -1;
}
// 析构函数
~SeqList() {
delete[] data;
}
// 在线性表末尾添加元素
void push_back(T item) {
if (last == maxSize - 1) {
cout << "Error: the list is full!" << endl;
return;
}
last++;
data[last] = item;
}
// 在指定位置插入元素
void insert(int index, T item) {
if (last == maxSize - 1) {
cout << "Error: the list is full!" << endl;
return;
}
if (index < 0 || index > last + 1) {
cout << "Error: invalid index!" << endl;
return;
}
for (int i = last; i >= index; i--) {
data[i + 1] = data[i];
}
data[index] = item;
last++;
}
// 获取指定位置的元素
T operator[](int index) {
if (index < 0 || index > last) {
cout << "Error: invalid index!" << endl;
return T();
}
return data[index];
}
// 获取线性表的长度
int length() {
return last + 1;
}
};
```
阅读全文