已知长度为n的线性表L采用顺序存储结构。设计一个算法实现线性表里数据元素的逆序,例如原始线性表里数据为(1,2,3,4),预期想要的结果为(4,3,2,1)。要求:采用实例测试并写出完整程序。编写简单的c语言或者c++代码
时间: 2024-10-07 20:02:46 浏览: 29
《数据结构C++版》实验一:线性表的顺序存储结构实验报告
在C语言中,我们可以使用两个指针,一个指向数组的开始,另一个指向结束,然后交换它们所指向的数据,逐次向中间移动直到相遇。以下是C语言的一个简单示例:
```c
#include <stdio.h>
// 交换两个元素的值
void swap(int* a, int* b) {
int temp = *a;
*a = *b;
*b = temp;
}
// 逆序线性表
void reverseArray(int arr[], int n) {
if (n > 0) {
// 使用两个指针,一个从头开始,一个从尾部开始
int start = 0, end = n - 1;
while (start < end) {
// 交换元素
swap(&arr[start], &arr[end]);
// 移动指针
start++;
end--;
}
}
}
int main() {
int L[] = {1, 2, 3, 4};
int n = sizeof(L) / sizeof(L[0]);
printf("Original array: ");
for (int i = 0; i < n; i++) {
printf("%d ", L[i]);
}
reverseArray(L, n);
printf("\nReversed array: ");
for (int i = 0; i < n; i++) {
printf("%d ", L[i]);
}
return 0;
}
```
当你运行这个程序,它会首先打印出原始线性表(1 2 3 4),然后逆序操作后输出(4 3 2 1)。
阅读全文