c++编写一个程序实现顺序表的反转
时间: 2024-09-11 18:10:27 浏览: 22
在C++中,可以通过使用模板来编写一个通用的顺序表反转函数。顺序表可以用数组或者标准模板库(STL)中的`vector`来实现。下面是一个使用`vector`来实现顺序表反转的示例程序:
```cpp
#include <iostream>
#include <vector>
// 函数模板用于反转顺序表
template<typename T>
void reverse(std::vector<T>& vec) {
int left = 0;
int right = vec.size() - 1;
while (left < right) {
// 交换左右两端的元素
std::swap(vec[left], vec[right]);
// 移动指针
left++;
right--;
}
}
// 主函数
int main() {
// 创建并初始化一个vector
std::vector<int> vec = {1, 2, 3, 4, 5};
// 打印原始顺序表
std::cout << "Original list: ";
for (int num : vec) {
std::cout << num << " ";
}
std::cout << std::endl;
// 反转顺序表
reverse(vec);
// 打印反转后的顺序表
std::cout << "Reversed list: ";
for (int num : vec) {
std::cout << num << " ";
}
std::cout << std::endl;
return 0;
}
```
在这个程序中,我们定义了一个名为`reverse`的模板函数,它接受一个`vector`的引用,并通过交换首尾元素的方式来反转顺序表。`main`函数中创建了一个`vector`,初始化后调用`reverse`函数进行反转,并在控制台输出反转前后的顺序表内容。