已知长度为n的线性表A采用顺序存储结构,设计一个算法,使得该线性表中的数据元素按逆序重新排列 ,用C语言编写
时间: 2024-09-30 12:05:29 浏览: 43
为了将长度为 n 的顺序存储结构(如数组)中的数据元素按逆序重新排列,你可以使用双指针法,即从两端开始交换元素。以下是 C 语言的一个简单示例:
```c
#include <stdio.h>
// 函数声明
void reverseArray(int arr[], int start, int end);
int main() {
int n;
printf("请输入线性表的长度:");
scanf("%d", &n);
// 假设数组名为 A,输入数组元素
int A[n];
printf("请输入数组元素:");
for (int i = 0; i < n; i++) {
scanf("%d", &A[i]);
}
// 反转数组
reverseArray(A, 0, n - 1);
// 输出反转后的数组
printf("逆序后的数组为:");
for (int i = 0; i < n; i++) {
printf("%d ", A[i]);
}
printf("\n");
return 0;
}
// 双指针反转函数
void reverseArray(int arr[], int start, int end) {
while (start < end) {
// 交换开始和结束位置的元素
int temp = arr[start];
arr[start] = arr[end];
arr[end] = temp;
// 更新指针
start++;
end--;
}
}
```
在这个程序中,`reverseArray` 函数接收一个整型数组、起始索引和结束索引作为参数,通过不断交换这两个指针指向的元素,直到两个指针相遇,完成数组的逆序。
阅读全文