已知长度为n的线性表A采用顺序存储结构,设计一个算法,使得该线性表中的数据元素按逆序重新排列用c++
时间: 2024-09-15 22:08:33 浏览: 96
数据结构实验报告-线性表-线性表基本操作算法5分-实验内容及要求.docx
5星 · 资源好评率100%
在C++中,我们可以使用双指针法来实现线性表A的逆序排列。这里提供一种简单的非递归解法:
```cpp
#include <iostream>
void reverseArray(int arr[], int n) {
// 初始化两个指针,一个指向数组开始,另一个指向数组结束
int start = 0;
int end = n - 1;
while (start < end) {
// 交换当前位置的数据
std::swap(arr[start], arr[end]);
// 指针向中间移动
start++;
end--;
}
}
int main() {
int n;
std::cout << "请输入线性表的长度: ";
std::cin >> n;
// 假设arr[]是一个大小为n的动态数组
int* arr = new int[n];
for (int i = 0; i < n; i++) {
std::cout << "请输入第" << i+1 << "个元素: ";
std::cin >> arr[i];
}
std::cout << "原始数组: ";
for (int i = 0; i < n; i++) {
std::cout << arr[i] << " ";
}
// 调用函数逆序数组
reverseArray(arr, n);
std::cout << "\n逆序后的数组: ";
for (int i = 0; i < n; i++) {
std::cout << arr[i] << " ";
}
delete[] arr; // 别忘了释放内存
return 0;
}
```
在这个程序中,`reverseArray`函数接受一个整型数组和它的长度作为输入,通过循环不断交换起始位置和结束位置的元素直到相遇,实现了线性表的逆序。
阅读全文