用c++写一个顺序表,其值按照从小到大排序,现插入一个数据元素,要求该表中的元素仍然按从小到大排列
时间: 2024-10-27 17:05:33 浏览: 25
在C++中,你可以使用`std::vector`作为基础容器来创建一个动态数组(类似顺序表),并保持元素有序。这里是一个简单的示例,展示了如何实现插入操作同时保持升序:
```cpp
#include <iostream>
#include <vector>
// 定义一个比较函数,用于排序
bool compare(int a, int b) {
return a < b;
}
class SortedList {
private:
std::vector<int> elements; // 有序列表
public:
void insert(int value) {
// 插入前先查找正确的插入位置
int i = 0;
while (i < elements.size() && compare(elements[i], value)) {
++i;
}
// 插入元素
elements.insert(elements.begin() + i, value);
}
// 打印列表,展示当前的排序状态
void print_list() {
for (const auto &element : elements) {
std::cout << element << " ";
}
std::cout << "\n";
}
};
int main() {
SortedList list;
list.insert(5); // 插入5
list.insert(2); // 插入2
list.insert(8); // 插入8
list.print_list(); // 输出: 2 5 8
// 可以继续添加更多元素,始终保持有序
list.insert(1); // 插入1
list.print_list(); // 输出: 1 2 5 8 ...
return 0;
}
```
阅读全文