c++怎么实现顺序表的反转呢
时间: 2024-09-11 17:09:59 浏览: 42
在C++中实现顺序表的反转,通常会使用双指针的方法。基本思路是设置一个头指针和一个尾指针,然后在头尾指针所指的元素没有相遇或交错之前,交换两个指针所指向的元素,然后移动头指针向后,尾指针向前,直到两个指针相遇或交错为止。
以下是使用STL中的`vector`容器来实现顺序表反转的一个示例代码:
```cpp
#include <iostream>
#include <vector>
void reverseVector(std::vector<int>& vec) {
int left = 0; // 头指针
int right = vec.size() - 1; // 尾指针
while (left < right) {
// 交换头尾指针所指向的元素
std::swap(vec[left], vec[right]);
// 移动指针
left++;
right--;
}
}
int main() {
std::vector<int> vec = {1, 2, 3, 4, 5};
std::cout << "Original vector: ";
for (int num : vec) {
std::cout << num << " ";
}
std::cout << std::endl;
reverseVector(vec);
std::cout << "Reversed vector: ";
for (int num : vec) {
std::cout << num << " ";
}
std::cout << std::endl;
return 0;
}
```
在这个例子中,我们定义了一个名为`reverseVector`的函数,它接受一个`vector<int>`的引用,并直接在原`vector`上进行操作,完成反转。
阅读全文