实现顺序线性表就地逆序C语言实现
时间: 2024-09-17 10:05:49 浏览: 64
实现顺序线性表的就地逆序(也称为原地反转)可以在C语言中通过三个指针,两个指向当前元素和下一个元素,然后交换它们的位置并移动指针向前推进来完成。以下是简单的C语言实现:
```c
#include <stdio.h>
void reverse_in_place(int* arr, int size) {
if (size <= 1) return; // 如果数组为空或只有一个元素,无需反转
int start = 0, end = size - 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 length = sizeof(arr) / sizeof(arr[0]);
printf("Before reversing: ");
for (int i = 0; i < length; i++) {
printf("%d ", arr[i]);
}
reverse_in_place(arr, length);
printf("\nAfter reversing: ");
for (int i = 0; i < length; i++) {
printf("%d ", arr[i]);
}
return 0;
}
```
在这个例子中,`reverse_in_place`函数接受一个整数数组和其大小,然后直接在数组上进行操作。`main`函数展示了如何测试这个逆序函数。
阅读全文