已知长度为n的线性表A采用顺序存储结构,设计一个算法,使得该线性表中的数据元素按逆序重新排列c语言
时间: 2024-10-18 22:17:06 浏览: 30
数据结构实验报告-线性表-线性表基本操作算法5分-实验内容及要求.docx
5星 · 资源好评率100%
在C语言中,你可以通过遍历整个数组并逐个交换相邻元素来实现逆序排列。这里提供一个简单的冒泡排序的变种,用于逆序操作:
```c
#include <stdio.h>
void reverseArray(int A[], int n) {
int i, j;
for (i = 0; i < n / 2; i++) { // 遍历一半的数组长度即可,因为最后半部分会自动变成逆序
// 从前往后交换,直到找到第一个比下一个小的元素
for (j = 0; j < n - i - 1; j++) {
if (A[j] > A[j + 1]) {
// 交换 A[j] 和 A[j+1]
int temp = A[j];
A[j] = A[j + 1];
A[j + 1] = temp;
}
}
}
}
// 测试函数
int main() {
int A[] = {1, 2, 3, 4, 5};
int n = sizeof(A) / sizeof(A[0]);
printf("Original array: ");
for (int i = 0; i < n; i++) {
printf("%d ", A[i]);
}
reverseArray(A, n);
printf("\nReversed array: ");
for (int i = 0; i < n; i++) {
printf("%d ", A[i]);
}
return 0;
}
```
当你运行这个程序时,输入的线性表 `A` 就会被逆序排列。
阅读全文