设计一个静态数组存储结构的顺序表类,要求编程实现如下任务:建立一个线性表,首先依次输人数据元素1,2,3,…,10,然后删除数据元素6,最后依次显示当前线性表中的数据元素。要求采用顺序表实现,假设该顺序表的数据元素个数在最坏情况下不会超过10个。用c++编译
时间: 2024-09-25 10:01:55 浏览: 36
在C++中,你可以创建一个名为`SequentialList`的顺序表类,使用数组作为底层数据结构来实现这个需求。下面是一个简单的实现:
```cpp
#include <iostream>
class SequentialList {
private:
int capacity; // 容量
int size; // 当前元素个数
int* data; // 存储数据的数组
public:
SequentialList() : capacity(10), size(0) { data = new int[capacity]; }
~SequentialList() {
delete[] data;
data = nullptr;
}
// 插入元素到列表尾部
void insert(int value) {
if (size == capacity) {
resize(capacity * 2); // 如果已满,扩大容量
}
data[size++] = value;
}
// 删除指定位置的元素
void remove(int index) {
if (index >= 0 && index < size) {
for (int i = index; i < size - 1; ++i) {
data[i] = data[i + 1];
}
--size;
} else {
std::cout << "Invalid index!" << std::endl;
}
}
// 显示列表中的所有元素
void display() {
for (int i = 0; i < size; ++i) {
std::cout << data[i] << " ";
}
std::cout << std::endl;
}
// 扩大列表容量
void resize(int new_capacity) {
int* newData = new int[new_capacity];
for (int i = 0; i < size; ++i) {
newData[i] = data[i];
}
delete[] data;
data = newData;
capacity = new_capacity;
}
};
int main() {
SequentialList list;
// 输入数据并插入
for (int i = 1; i <= 10; ++i) {
list.insert(i);
}
// 删除元素6
list.remove(5);
// 显示剩余元素
list.display();
return 0;
}
```
在这个例子中,我们创建了一个顺序表`SequentialList`,它有初始化容量10,可以动态扩容。我们实现了插入、删除和显示功能。在`main`函数中按照题目描述操作。
阅读全文