已知一个顺序表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
悬赏问题
- ¥15 反激PWM控制芯片调研
- ¥15 Python for loop减少运行时间
- ¥15 fluent模拟物质浓度udf
- ¥15 Collection contains no element matching the predicate
- ¥20 冻品电商平台的搜索是怎么实现的
- ¥15 如何搞一个可以控制、显示马达频率
- ¥15 WPF动态创建页面内容
- ¥15 如何对TBSS的结果进行统计学的分析已完成置换检验,如何在最终的TBSS输出结果提取除具体值及如何做进一步相关性分析
- ¥15 SQL数据库操作问题
- ¥15 Matlab安装yalmip和cplex功能安装失败