已知一个顺序表LA,将LA中的数据元素逆置。例如LA=(5,8,1,6,12),则逆置后LA=(12,6,1,8,5).
思考:如何利用尽量少的空间?能否在原地修改?
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
悬赏问题
- ¥20 java在应用程序里获取不到扬声器设备
- ¥15 echarts动画效果的问题,请帮我添加一个动画。不要机器人回答。
- ¥60 许可证msc licensing软件报错显示已有相同版本软件,但是下一步显示无法读取日志目录。
- ¥15 Attention is all you need 的代码运行
- ¥15 一个服务器已经有一个系统了如果用usb再装一个系统,原来的系统会被覆盖掉吗
- ¥15 使用esm_msa1_t12_100M_UR50S蛋白质语言模型进行零样本预测时,终端显示出了sequence handled的进度条,但是并不出结果就自动终止回到命令提示行了是怎么回事:
- ¥15 前置放大电路与功率放大电路相连放大倍数出现问题
- ¥30 关于<main>标签页面跳转的问题
- ¥80 部署运行web自动化项目
- ¥15 腾讯云如何建立同一个项目中物模型之间的联系