用c++实现线性表的顺序存储结构代码
时间: 2024-05-02 07:13:05 浏览: 110
好的,以下是用C++实现线性表的顺序存储结构的代码:
```cpp
#include <iostream>
using namespace std;
const int MAXSIZE = 100; // 定义线性表的最大长度
class SeqList {
private:
int data[MAXSIZE]; // 存储线性表元素的数组
int length; // 线性表的当前长度
public:
SeqList() { length = 0; } // 构造函数,初始化线性表为空表
~SeqList() {} // 析构函数,释放空间
int getLength() { return length; } // 获取线性表长度
bool isEmpty() { return length == 0; } // 判断线性表是否为空
bool isFull() { return length == MAXSIZE; } // 判断线性表是否已满
bool insert(int i, int x); // 在第i个位置插入元素x
bool remove(int i); // 删除第i个位置的元素
int get(int i); // 获取第i个位置的元素
void printList(); // 打印线性表中的所有元素
};
bool SeqList::insert(int i, int x) {
if (i < 1 || i > length + 1) return false; // 插入位置不合法
if (isFull()) return false; // 线性表已满,无法插入新元素
for (int j = length; j >= i; j--) {
data[j] = data[j - 1]; // 将第i个位置及其后面的元素后移一位
}
data[i - 1] = x; // 将新元素插入到第i个位置
length++; // 线性表长度加1
return true;
}
bool SeqList::remove(int i) {
if (i < 1 || i > length) return false; // 删除位置不合法
for (int j = i; j < length; j++) {
data[j - 1] = data[j]; // 将第i个位置及其后面的元素前移一位
}
length--; // 线性表长度减1
return true;
}
int SeqList::get(int i) {
if (i < 1 || i > length) return -1; // 获取位置不合法
return data[i - 1];
}
void SeqList::printList() {
for (int i = 0; i < length; i++) {
cout << data[i] << " ";
}
cout << endl;
}
int main() {
SeqList list;
list.insert(1, 10);
list.insert(2, 20);
list.insert(3, 30);
list.printList(); // 输出:10 20 30
list.remove(2);
list.printList(); // 输出:10 30
cout << list.get(2) << endl; // 输出:30
return 0;
}
```
以上代码实现了线性表的基本操作,包括插入、删除、获取元素和打印线性表中的所有元素。你可以根据需要进行修改和扩展。如果你有任何问题或者需要进一步的帮助,请随时告诉我。
阅读全文