数据结构教程 假设有一线性表元素存放在数组a[10]中,元素分别为1,2,3,4,5,6,7,8,9,10,请建立线性表的顺序存储结构顺序表L,请实现顺序表以下的基本运算并用相关数据进行测试,并编写主函数调用这些函数输出相应的结果。实现顺序表以下的基本运算:
时间: 2024-10-07 20:07:16 浏览: 35
在C++中,我们可以使用数组和一些简单的指针操作来创建一个顺序表的简单实现。这里是一个基本的顺序表(数组)的实现,包含了你需要的那些功能:
```cpp
#include <iostream>
// 定义顺序表的元素类型
typedef int Element;
// 顺序表类
class SequentialList {
private:
Element data[10];
int size; // 表示实际元素的数量
public:
SequentialList() : size(0) {}
// 判断是否为空
bool isEmpty() const { return size == 0; }
// 获取表长
int size() const { return size; }
// 在指定位置插入元素
void insertAt(int position, const Element& value) {
if (position < 1 || position > size + 1) {
throw std::out_of_range("Invalid insertion position.");
}
if (size == 10) {
std::cout << "Array is full, cannot insert more elements." << std::endl;
return;
}
for (int i = size; i >= position; --i) {
data[i] = data[i - 1];
}
data[position - 1] = value;
++size;
}
// 删除指定位置的元素
void removeAt(int position) {
if (position < 1 || position > size) {
throw std::out_of_range("Invalid removal position.");
}
for (int i = position; i < size - 1; ++i) {
data[i] = data[i + 1];
}
--size;
}
// 获取元素
Element get(int index) const {
if (index < 1 || index > size) {
throw std::out_of_range("Invalid index.");
}
return data[index - 1]; // 注意数组下标从0开始
}
// 主函数用于测试
void test() {
fill(data, data + 10, 0);
data[0] = 1;
data[1] = 2;
// ... 测试其他操作
std::cout << "Table contents: ";
for (int i = 0; i < size(); ++i) {
std::cout << data[i] << " ";
}
std::cout << std::endl;
}
};
int main() {
SequentialList list;
list.test();
return 0;
}
```
阅读全文