C++实现实现顺序表
时间: 2024-11-09 15:31:24 浏览: 7
C++实现动态顺序表
在C++中,顺序表(也称为数组列表)是一种基础的数据结构,它通过连续的内存空间存储元素。下面是一个简单的顺序表实现,包括插入、删除和访问操作:
```cpp
#include <iostream>
template <typename T>
class SequentialList {
private:
T* data; // 存储数据的指针
int size; // 当前元素的数量
int capacity; // 序列的最大容量
public:
SequentialList() : data(nullptr), size(0), capacity(0) {}
~SequentialList() { delete[] data; } // 析构函数释放内存
void resize(int newSize) {
if (newSize > capacity) {
T* newData = new T[newSize];
for (int i = 0; i < size; ++i)
newData[i] = data[i]; // 数据复制
delete[] data;
data = newData;
capacity = newSize;
}
}
void push_back(T item) {
if (size == capacity) resize(capacity * 2); // 如果满,扩大两倍
data[size++] = item; // 添加新元素
}
T& front() {
if (size == 0) throw std::runtime_error("空列表"); // 检查是否为空
return data[0]; // 返回第一个元素
}
T& back() {
if (size == 0) throw std::runtime_error("空列表");
return data[size - 1]; // 返回最后一个元素
}
// 其他操作,如 insert 和 remove 可以类似实现
};
// 示例使用
int main() {
SequentialList<int> list;
list.push_back(1);
list.push_back(2);
list.push_back(3);
std::cout << "Front element: " << list.front() << "\n";
std::cout << "Back element: " << list.back() << "\n";
return 0;
}
```
注意,这个实现没有处理列表溢出的情况,也没有实现删除元素的功能,实际应用中可能需要根据需求进行补充。此外,为了防止内存泄露,当不需要顺序表时,记得调用析构函数或移除所有元素后再删除它。
阅读全文