c++实现线性表顺序存储的定义,初始化,插入删除运算,遍历和排序的代码
时间: 2025-01-12 17:05:17 浏览: 39
在C++中,我们可以使用数组来实现线性表的顺序存储结构,因为数组提供了一种连续内存的方式来存放数据。这里是一个简单的例子:
```cpp
#include <iostream>
// 定义线性表模板
template <typename T>
class LinearList {
private:
T* elements; // 存储元素的指针
int size; // 当前元素的数量
int capacity; // 数组的容量
public:
LinearList(int initialCapacity = 5) {
elements = new T[initialCapacity];
capacity = initialCapacity;
size = 0;
}
~LinearList() {
delete[] elements; // 释放内存
}
// 插入操作 (在末尾)
void insert(T value) {
if (size == capacity) {
resize(capacity * 2); // 如果满,扩容
}
elements[size++] = value;
}
// 删除操作 (删除最后一个元素)
void removeLast() {
if (size > 0) {
size--;
} else {
std::cout << "List is empty." << std::endl;
}
}
// 遍历
void traverse() const {
for (int i = 0; i < size; ++i) {
std::cout << elements[i] << " ";
}
std::cout << std::endl;
}
// 仅适用于升序排列的简单排序
void sort() { // 实现冒泡排序或其他简单排序算法
for (int i = 0; i < size - 1; ++i) {
for (int j = 0; j < size - 1 - i; ++j) {
if (elements[j] > elements[j + 1]) {
std::swap(elements[j], elements[j + 1]);
}
}
}
}
private:
// 动态调整数组大小
void resize(int newCapacity) {
T* temp = new T[newCapacity];
for (int i = 0; i < size; ++i) {
temp[i] = elements[i];
}
delete[] elements;
elements = temp;
capacity = newCapacity;
}
};
int main() {
LinearList<int> list;
list.insert(1);
list.insert(4);
list.insert(2);
list.traverse(); // 输出 [1, 4, 2]
list.sort();
list.traverse(); // 输出 [1, 2, 4]
return 0;
}
```
阅读全文
相关推荐


















