用c++设计顺序表类模版SqList<T>
时间: 2024-10-08 10:13:12 浏览: 8
在C++中,设计一个顺序表(SqList)模板类是一种常见的数据结构实现,它允许存储任意类型的数据。以下是简单的设计概览:
```cpp
template <typename T>
class SqList {
public:
// 构造函数
SqList() : head(nullptr), size(0) {}
// 插入元素到列表头部
void push_front(T value) {
Node* newNode = new Node(value);
newNode->next = head;
head = newNode;
size++;
}
// 插入元素到列表尾部
void push_back(T value) {
Node* newNode = new Node(value);
if (head == nullptr) {
head = newNode;
} else {
Node* current = head;
while (current->next != nullptr) {
current = current->next;
}
current->next = newNode;
}
size++;
}
// 删除指定位置的元素
void remove_at(size_t index) {
if (index >= size || head == nullptr) return;
if (index == 0) {
Node* temp = head;
head = head->next;
delete temp;
} else {
Node* current = head;
for (size_t i = 0; i < index - 1 && current != nullptr; ++i) {
current = current->next;
}
if (current != nullptr) {
current->next = current->next->next;
delete current->next;
}
}
size--;
}
// 获取元素
T& operator[](size_t index) {
if (index < size) {
Node* current = head;
for (size_t i = 0; i < index; ++i) {
current = current->next;
}
return current->value;
} else {
throw std::out_of_range("Index out of range");
}
}
private:
struct Node {
T value;
Node* next;
};
Node* head;
size_t size;
};
```