1.设计一个顺序表类,要求:类成员函数包括插入、删除、取数据元素、是否空。 2.设计一个测试主函数验证类成员函数的正确性。
时间: 2024-10-13 10:10:19 浏览: 28
为了设计一个简单的顺序表类,我们可以创建一个名为`SequenceList`的类,它包含私有变量来存储数据,以及公有方法来操作列表。以下是这个类的设计:
```cpp
#include <iostream>
class SequenceList {
private:
int* data; // 存储数据的指针
int size; // 当前元素的数量
int capacity; // 序列的最大容量
public:
// 构造函数,初始化容量
SequenceList(int initial_capacity = 5) {
data = new int[initial_capacity];
size = 0;
capacity = initial_capacity;
}
// 插入元素到列表末尾
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;
}
}
// 取指定位置的数据元素
int get(int index) const {
if (index >= 0 && index < size) {
return data[index];
} else {
std::cout << "Invalid index!" << std::endl;
return -1; // 返回错误值表示非法访问
}
}
// 检查列表是否为空
bool isEmpty() const {
return size == 0;
}
// 私有方法用于调整列表容量
void resize(int new_capacity) {
int* old_data = data;
data = new int[new_capacity];
for (int i = 0; i < size; ++i) {
data[i] = old_data[i];
}
delete[] old_data;
capacity = new_capacity;
}
// 析构函数释放内存
~SequenceList() {
delete[] data;
}
};
// 测试主函数
int main() {
SequenceList list;
// 验证插入
list.insert(1);
list.insert(2);
list.insert(3);
// 验证获取和删除
std::cout << "Element at index 1: " << list.get(1) << std::endl;
list.remove(1);
std::cout << "After removing 1: " << list.isEmpty() << std::endl;
// 清理资源
return 0;
}
阅读全文