已知一个顺序表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 复杂表达式求值程序里的函数优先级问题
- ¥15 求密码学的客成社记ji着用
- ¥35 POI导入树状结构excle
- ¥15 初学者c语言题目解答
- ¥15 div editable中的光标问题
- ¥15 mysql报错1415Not allowed to return a result set from a trigger 不知如何修改
- ¥60 Python输出Excel数据整理,算法较为复杂
- ¥15 回答几个问题 关于数据库
- ¥15 51单片机串口通信问题,未完成且要修改
- ¥15 百鸡问题 c++编程问题(相关搜索:输出数据)