用C语言写出这个可以运行代码,设有一个顺序表 A,包含𝑛个元素,要求写出一个将该表逆置的算法
时间: 2023-06-06 15:06:12 浏览: 71
好的,以下是用C语言写出的该算法代码:
```
#include <stdio.h>
#define MAXSIZE 100 // 定义线性表最大长度
typedef struct {
int data[MAXSIZE]; // 用数组存储线性表元素
int length; // 线性表当前长度
} SqList;
void reverse(SqList *L) {
int i, temp;
for(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 = {{1, 2, 3, 4, 5}, 5}; // 定义线性表
int i;
printf("原始线性表为:");
for(i = 0; i < L.length; i++) {
printf("%d ", L.data[i]);
}
printf("\n");
reverse(&L); // 调用逆置函数
printf("逆置后的线性表为:");
for(i = 0; i < L.length; i++) {
printf("%d ", L.data[i]);
}
printf("\n");
return 0;
}
```
该程序定义了一个结构体SqList来表示线性表,其中包含一个存储元素的数组和线性表的长度。reverse函数用来将线性表逆置,采用了循环遍历线性表的一半元素的方式,将头和尾对应的元素互换位置。在main函数中,我们先输出原始的线性表,然后调用reverse函数逆置线性表,并输出逆置后的结果。
希望对您有所帮助!