已知长度为n 的线性表A采用顺序存储结构,设计一个算法,使得该线性表中的数据元素按逆序重新排列(用数据结构c语言版)
时间: 2024-09-28 11:07:14 浏览: 69
在C语言中,如果你有一个长度为n的线性表A采用顺序存储结构,并想将它逆序排列,可以使用两个指针,一个指向数组的开始,另一个指向结束。下面是一个简单的冒泡排序的修改版本,实现了逆序排列:
```c
#include <stdio.h>
void reverseArray(int arr[], int n) {
int start = 0; // 指向起始位置
int end = n - 1; // 指向结束位置
while (start < end) { // 当起始位置小于结束位置
// 交换arr[start]和arr[end]
int temp = arr[start];
arr[start] = arr[end];
arr[end] = temp;
// 移动指针
start++;
end--;
}
}
// 测试函数
int main() {
int arr[] = {1, 2, 3, 4, 5};
int n = sizeof(arr) / sizeof(arr[0]);
printf("Original array: ");
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
reverseArray(arr, n);
printf("\nReversed array: ");
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
return 0;
}
```
运行这个程序,输入数组`{1, 2, 3, 4, 5}`会输出逆序后的数组`{5, 4, 3, 2, 1}`。
阅读全文