c语言实现顺序表的逆置
时间: 2024-01-04 16:04:42 浏览: 101
顺序表的逆置可以通过交换表头和表尾,表头+1和表尾-1,以此类推,直到中间位置完成。如果表长为奇数,中间位置不需要移动。如果表长为偶数,中间位置需要移动。具体实现如下:
```
#include <stdio.h>
#define MAXSIZE 100
typedef struct {
int data[MAXSIZE];
int length;
} SqList;
void swap(int *a, int *b) {
int temp = *a;
*a = *b;
*b = temp;
}
void reverse(SqList *L) {
int i;
for (i = 0; i < L->length / 2; i++) {
swap(&L->data[i], &L->data[L->length - i - 1]);
}
}
int main() {
SqList L = {{1, 2, 3, 4, 5}, 5};
int i;
printf("Before reverse: "); for (i = 0; i < L.length; i++) {
printf("%d ", L.data[i]);
}
printf("\n");
reverse(&L);
printf("After reverse: ");
for (i = 0; i < L.length; i++) {
printf("%d ", L.data[i]);
}
printf("\n");
return 0;
}
```
阅读全文