c++如何创建一个线性表
时间: 2024-10-09 21:12:00 浏览: 48
在C++中创建一个线性表,通常会通过指针数组、动态数组(vector)或链表(如std::list或自定义单向链表)来实现。这里我将简单介绍两种常见的方法:
1. **数组实现(固定大小)**:
- 使用`std::array`或手动管理数组:
```cpp
template <typename T>
class LinearListArray {
private:
T* elements;
size_t capacity;
size_t size;
public:
LinearListArray(size_t capacity) : capacity(capacity), size(0) {
elements = new T[capacity];
}
// 添加元素,可能会导致溢出
void push_back(T value) {
if (size == capacity) {
resize(capacity * 2); // 或者其他扩容策略
}
elements[size++] = value;
}
// ... 其他操作,比如获取元素等
~LinearListArray() {
delete[] elements;
}
};
```
2. **动态数组(动态增长)**:
- 使用`std::vector`:
```cpp
#include <vector>
class LinearListDynamic {
private:
std::vector<T> elements;
public:
void push_back(T value) {
elements.push_back(value);
}
// ... 获取元素,调整容量等成员函数
};
```
3. **链表实现**:
- 使用`std::list`:
```cpp
#include <list>
class LinkedListNode {
public:
T data;
LinkedListNode* next;
// 构造器, 设置next为nullptr
LinkedListNode(T data) : data(data), next(nullptr) {}
};
class LinearListLinkedList {
private:
LinkedListNode* head;
public:
void push_back(T value) {
LinkedListNode* newNode = new LinkedListNode(value);
newNode->next = head;
head = newNode;
}
// ... 遍历, 删除节点等操作
~LinearListLinkedList() {
// 清理内存
}
};
```
阅读全文