查找顺序表中的最大值并讲最大值移到顺序表末尾c++
时间: 2024-10-10 08:02:13 浏览: 32
如何在C++中建立一个顺序表
5星 · 资源好评率100%
在C++中,你可以通过遍历顺序表(数组或者动态数组),同时跟踪当前的最大值,将其保存在一个变量中,最后将这个最大值置为列表的最后一个元素,以达到查找并移动最大值到末尾的目的。以下是一个简单的示例:
```cpp
#include <iostream>
// 假设我们有一个模板类 List,它有一个整数类型的元素,并有一个指向下一个元素的指针
template <typename T>
class List {
private:
T* elements;
size_t length;
public:
// 构造函数、添加元素等其他方法...
void findMaxAndMoveToEnd(T& max_value) {
if (length == 0) {
return; // 如果列表为空,直接返回
}
max_value = elements[0]; // 初始设置最大值为第一个元素
for (size_t i = 1; i < length; ++i) { // 遍历列表
if (elements[i] > max_value) { // 如果找到更大的元素
max_value = elements[i]; // 更新最大值
}
}
// 将最大值移到末尾
T temp = elements[length - 1];
elements[length - 1] = max_value;
elements[max_value == temp ? length - 2 : length - 1] = temp; // 如果max_value已经是最后一个元素,则无需再调整
}
};
int main() {
List<int> list = {5, 2, 9, 1, 7}; // 创建一个整数列表
int max;
list.findMaxAndMoveToEnd(max);
for (const auto& value : list) {
std::cout << value << " ";
}
std::cout << "
阅读全文