设有一个线性表(a0,a1,…,an-1),存放在一个一维数组中,编写函数将这个线性表原地逆置,输出逆置后的结果。要求:该逆置函数不属于类的成员函数,定义一个独立的函数,通过使用顺序表的成员函数实现逆置。
时间: 2024-09-14 19:05:24 浏览: 57
要实现一个线性表的原地逆置,你可以创建一个非成员函数,接收一个指向一维数组的指针以及数组的长度作为参数。然后,遍历数组的一半,同时交换第一个元素和最后一个元素,第二个元素和倒数第二个元素,以此类推。下面是C++代码实现:
```cpp
#include <iostream>
// 非成员函数,用于原地逆置线性表
void reverseArray(int* arr, int size) {
if (size <= 1) return; // 如果数组长度为1或0,无需操作
for (int i = 0; i < size / 2; ++i) { // 遍历数组一半
std::swap(arr[i], arr[size - i - 1]); // 交换对应的元素
}
}
// 示例:显示数组前5个元素
void printArray(int* arr, int size) {
for (int i = 0; i < size; ++i) {
std::cout << arr[i] << " ";
}
std::cout << "\n";
}
int main() {
int a[] = {1, 2, 3, 4, 5};
int n = sizeof(a) / sizeof(a[0]);
std::cout << "Original array: ";
printArray(a, n);
reverseArray(a, n); // 逆置数组
std::cout << "Reversed array: ";
printArray(a, n);
return 0;
}
```
运行这段代码后,你将看到原始数组被成功逆置了。
阅读全文
相关推荐
![cpp](https://img-home.csdnimg.cn/images/20250102104920.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![docx](https://img-home.csdnimg.cn/images/20241231044901.png)
![docx](https://img-home.csdnimg.cn/images/20241231044901.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![ppt](https://img-home.csdnimg.cn/images/20241231044937.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![ppt](https://img-home.csdnimg.cn/images/20241231044937.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![h](https://img-home.csdnimg.cn/images/20250102104920.png)
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)