顺序表逆置法换元素位置
来源:互联网 发布:软件需求分析常见问题 编辑:程序博客网 时间:2024/06/18 07:50
题目描述
注意:先将顺序表元素调整为符合要求的内容后,再做输出,输出过程只能用一个循环语句实现,不能分成两个部分。
输入
之后输入n行,每行先输入整数len与整数m(分别代表本表的元素总数与前半表的元素个数),之后输入len个整数,代表对应顺序表的每个元素。
输出
示例输入
210 3 1 2 3 4 5 6 7 8 9 105 3 10 30 20 50 80
示例输出
4 5 6 7 8 9 10 1 2 350 80 10 30 20
提示
注意:先将顺序表元素调整为符合要求的内容后,再做输出,输出过程只能用一个循环语句实现,不能分成两个部分。
来源
#include <stdio.h>
#include <stdlib.h>
#define maxsize 1000010
typedef int element;
typedef struct
{
element*base;
int length;
int listsize;
}sq;
int intilist(sq*l)
{
l->base=(element*)malloc(maxsize*sizeof(element));
if(!l->base)
return -1;
l->length=0;
l->listsize=maxsize;
return 0;
}
void insert(sq*l,int len)
{
int i;
for(i=1;i<=len;i++)
{
scanf("%d",&l->base[i]);
}
}
void check(sq*l,int s,int r,int k)
{
int i,t;
for(i=1;i<=k;i++)
{
t=l->base[s];
l->base[s++]=l->base[r];
l->base[r--]=t;
}
}
void display(sq*l,int len)
{ int i;
for(i=1;i<=len;i++)
{
if(i==len)
printf("%d\n",l->base[i]);
else printf("%d ",l->base[i]);
}
}
int main()
{
int len,n,m;
sq l;
scanf("%d",&n);
while(n--)
{
scanf("%d%d",&len,&m);
intilist(&l);
insert(&l,len);
check(&l,1,len,len/2);//一共len个元素置换全部
check(&l,len-m+1,len,m/2);//后m个
check(&l,1,len-m,(len-m)/2);//前面的
display(&l,len);
}
return 0;
}
- 顺序表逆置法换元素位置
- 顺序表应用:元素位置互换1
- 顺序表应用3:元素位置互换之移位算法
- 插入排序(顺序数组中找要插入元素的位置)
- 顺序表应用3:元素位置互换之移位算法
- 顺序表应用3:元素位置互换之移位算法
- 顺序表应用3:元素位置互换之移位算法
- 顺序表应用3:元素位置互换之移位算法
- 顺序表应用3:元素位置互换之移位算法
- 顺序表应用3:元素位置互换之移位算法
- 顺序表应用3:元素位置互换之移位算法
- 顺序表应用3:元素位置互换之移位算法
- 顺序表应用3:元素位置互换之移位算法
- 顺序表应用3:元素位置互换之移位算法
- 顺序表应用3:元素位置互换之移位算法
- 顺序表应用3:元素位置互换之移位算法
- 顺序表应用3:元素位置互换之移位算法
- 顺序表应用3:元素位置互换之移位算法
- 回味经典——uboot1.1.6 之 第二阶段 第三阶段
- listView实现圆角显示(第一个是左上角和右下角有圆角 中间没有圆角 最后一个是右下角和左下角圆角)
- Android ADB命令 浅试
- WebView代码交互
- count和capacity的区别
- 顺序表逆置法换元素位置
- 最小二乘法Java实现
- QT打包程序
- WebView性能优化
- 初步建模 2016.07.28回顾
- xUtils框架中关于注解的使用
- c# 调用webApi
- CodeForces 371C Hamburgers(二分)
- 解决android studio提示不分大小写的设置