c++语言顺序表的实现
时间: 2024-11-22 14:25:01 浏览: 3
在C++中,顺序表(也称为线性表或数组列表)是一种简单的基础数据结构,它通过连续的内存空间存储元素,每个元素的索引可以是整数。以下是基本顺序表的一种简单实现:
```cpp
template <typename T>
class SequentialList {
private:
static const size_t DEFAULT_CAPACITY = 4; // 默认容量
T* data; // 存储数据的动态数组
size_t size; // 当前元素的数量
size_t capacity; // 数组当前的容量
public:
SequentialList() : data(nullptr), size(0), capacity(DEFAULT_CAPACITY) {}
~SequentialList() { // 析构函数释放内存
delete[] data;
}
void resize(size_t newSize) {
if (newSize > capacity) {
T* newData = new T[newSize];
for (size_t i = 0; i < size; ++i)
newData[i] = data[i]; // 拷贝旧数据
delete[] data;
data = newData;
capacity = newSize;
}
}
void push_back(T value) {
if (size == capacity) {
resize(capacity * 2); // 需要扩大容量
}
data[size++] = value;
}
T& front() {
if (empty()) {
throw std::out_of_range("The list is empty");
}
return data[0];
}
T& back() {
if (empty()) {
throw std::out_of_range("The list is empty");
}
return data[size - 1];
}
bool empty() const {
return size == 0;
}
// 其他常用方法如插入、删除等
private:
// 禁止直接访问数组
SequentialList(const SequentialList&) = delete;
SequentialList& operator=(const SequentialList&) = delete;
};
```
阅读全文