设顺序表l元素均为整形,用C语言写一个算法,将l元素逆置,第一行输入整数n,第二行输入n个整数,用空格隔开,,逆序输出n个整数,以空格隔开,若n为0,则输出empty
时间: 2024-01-13 16:03:40 浏览: 86
好的,我可以帮你写这个算法。以下是C语言代码实现:
```c
#include <stdio.h>
#define MAXSIZE 100
typedef struct {
int data[MAXSIZE];
int length;
} SqList;
void InitList(SqList *L) {
L->length = 0;
}
void ReverseList(SqList *L) {
int temp;
for (int i = 0; i < L->length / 2; i++) {
temp = L->data[i];
L->data[i] = L->data[L->length - i - 1];
L->data[L->length - i - 1] = temp;
}
}
int main() {
SqList L;
int n;
scanf("%d", &n);
if (n == 0) {
printf("empty");
return 0;
}
for (int i = 0; i < n; i++) {
scanf("%d", &L.data[i]);
L.length++;
}
ReverseList(&L);
for (int i = 0; i < L.length; i++) {
printf("%d ", L.data[i]);
}
return 0;
}
```
首先定义一个顺序表结构体 `SqList`,包括一个整型数组 `data` 和一个整型变量 `length`,表示当前顺序表的长度。
然后定义 `InitList` 函数用于初始化顺序表,将 `length` 置为 0。
接着定义 `ReverseList` 函数用于将顺序表逆置。遍历顺序表的前一半元素,将第 i 个元素与倒数第 i 个元素交换位置。
最后在 `main` 函数中,首先读入整数 `n`,若 `n` 为 0,则输出 `empty`;否则读入 n 个整数,将它们存入顺序表中,并调用 `ReverseList` 函数将顺序表逆置,最后输出逆置后的顺序表元素。
希望能对你有所帮助!
阅读全文