已知一个顺序表LA,将LA中的数据元素逆置。例如LA=(5,8,1,6,12),则逆置后LA=(12,6,1,8,5).
思考:如何利用尽量少的空间?能否在原地修改?
![](https://profile-avatar.csdnimg.cn/default.jpg!4)
C语言 顺序表综合编程
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答 默认 最新
- 神仙别闹 2021-10-13 01:24关注
#include<stdio.h> #include<stdlib.h> #define MAXSIZE 1024 typedef struct { int data[MAXSIZE];//存储顺序表中的元素 int len;//顺序表长 }SeqList;//顺序表类型 SeqList *Init_SeqList()//顺序表初始化 { SeqList *L; L=(SeqList*)malloc(sizeof(SeqList)); L->len=0; return L; //返回指向顺序表的指针L } void CreatList(SeqList **L)//建立顺序表 { int i,n; printf("Input length of List:"); scanf("%d",&n); printf("Input elements of List:\n"); for(i=1;i<=n;i++) scanf("%d",&(*L)->data[i]); (*L)->len=n; } void Coverts(SeqList *A) //将顺序表中的元素逆置 { int i,n; int x; n=A->len;//n为线性表的长度 for(i=1;i<n/2;i++)//实现逆置 { x=A->data[i]; A->data[i]=A->data[n-i+1]; A->data[n-i+1]=x; } } void print(SeqList *L)//顺序表的输出 { int i; for(i=1;i<=L->len;i++) printf("%2d",L->data[i]); printf("\n"); } int main() { SeqList *A; A=Init_SeqList();//顺序表初始化 printf("Creat List:\n"); CreatList(&A);//建立顺序表 print(A);//输出顺序表 Coverts(A);//逆置 print(A); }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决评论 打赏 举报无用 1
悬赏问题
- ¥15 metadata提取的PDF元数据,如何转换为一个Excel
- ¥15 关于arduino编程toCharArray()函数的使用
- ¥100 vc++混合CEF采用CLR方式编译报错
- ¥15 coze 的插件输入飞书多维表格 app_token 后一直显示错误,如何解决?
- ¥15 vite+vue3+plyr播放本地public文件夹下视频无法加载
- ¥15 c#逐行读取txt文本,但是每一行里面数据之间空格数量不同
- ¥50 如何openEuler 22.03上安装配置drbd
- ¥20 ING91680C BLE5.3 芯片怎么实现串口收发数据
- ¥15 无线连接树莓派,无法执行update,如何解决?(相关搜索:软件下载)
- ¥15 Windows11, backspace, enter, space键失灵