请用c语言代码的方式实现顺序表之数组循环左移
时间: 2024-10-17 16:05:43 浏览: 22
在C语言中,我们可以使用数组下标操作和临时变量来实现顺序表(数组)的循环左移。下面是一个简单的示例,假设我们有一个整数数组`arr`,长度为`n`:
```c
#include <stdio.h>
void circular_left_shift(int arr[], int n) {
if (n <= 0) return; // 如果数组为空或长度为0,不做任何操作
// 将最后一个元素复制到第一个位置
int last_element = arr[n - 1];
// 将所有元素依次向右移动一位
for (int i = n - 1; i > 0; i--) {
arr[i] = arr[i - 1];
}
// 将最后元素插入到第一个位置
arr[0] = last_element;
}
// 示例
int main() {
int arr[] = {1, 2, 3, 4, 5};
int n = sizeof(arr) / sizeof(arr[0]);
printf("Before shift: ");
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
circular_left_shift(arr, n);
printf("\nAfter circular left shift: ");
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
return 0;
}
```
在这个例子中,`circular_left_shift`函数接受一个数组和它的长度,然后通过一个循环将所有元素左移一位,最后把原数组的第一个元素放到新数组的末尾。运行这个程序会看到原始数组左移的效果。
阅读全文