顺序表应用3:元素位置互换之移位算法
来源:互联网 发布:淘宝网首页女装毛衣 编辑:程序博客网 时间:2024/06/05 07:20
题目描述
注意:先将顺序表元素调整为符合要求的内容后,再做输出,输出过程只能用一个循环语句实现,不能分成两个部分。
输入
之后输入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>#include <malloc.h>#defineLISTINCREASMENT 100 #define LISTSIZE 10 #define OVERFLOW -1#define OK 1typedef int ElemType;typedef struct { ElemType * elem; int length; int listsize;} Sqlist;int SqInitial(Sqlist &L) { L.elem=(ElemType *) malloc (LISTSIZE*sizeof(ElemType)); if (!L.elem) exit(OVERFLOW); //当前存储空间已满; L.length=0; L.listsize=LISTSIZE; return OK;}int ListInsert(Sqlist &L,int i,ElemType e) // 在顺序表L的第 i 个元素之前插入新的元素e,{ if(i<1|| i > L.length+1) printf("ERROR!");// 插入位置不合法 if(L.length>=L.listsize) { ElemType*newbase=(ElemType*)realloc(L.elem,(L.listsize+LISTINCREASMENT) *sizeof(ElemType)); if(!newbase) return OVERFLOW;// 当前存储空间已满L.elem=newbase; L.listsize+=LISTINCREASMENT; } ElemType * q=&(L.elem[i-1]); ElemType * p; for(p=&(L.elem[L.length-1]); p>=q; --p) *(p+1)=*p;//插入位置及之后的元素右移 *q=e;// 插入e ++L.length; // 表长增1 return OK;}void exchange(Sqlist&L,int m)//实现顺序表 A 中前 m 个元素和后 n 个元素互换{ int i,j,k,x; for(i=0,j=m;j<L.length;i++,j++) { x=L.elem[j]; for(k=j;k>i;k--)//元素的后移; L.elem[k]=L.elem[k-1]; L.elem[i]=x; }}int main(){ int i,j,k,m,n,len; scanf("%d",&n); for(i=0;i<n;i++) { Sqlist L;//顺序表的定义; SqInitial(L);//顺序表的初始化; scanf("%d%d",&len,&m); for(j=1;j<=len;j++) { scanf("%d",&k); ListInsert(L,j,k);//顺序表元素的添加; } exchange(L,m);// 实现顺序表 A 中前 m 个元素和后 n 个元素互换 for(j=1;j<=L.length;j++)//顺序表所有元素的输出; { if(j!=L.length) printf("%d ",L.elem[j-1]); else printf("%d\n",L.elem[j-1]); } }}
#include <iostream>using namespace std;int main(){ int n; int t; cin>>t; while(t--) { int m; cin>>n>>m; int a[1001000]; int i,j; for(i=0;i<n;i++) cin>>a[i]; for(i=0,j=m;j<n;j++,i++) { int h=a[j]; for(int k=j;k>i;k--) a[k]=a[k-1]; a[i]=h; } for(i=0;i<n-1;i++) cout<<a[i]<<" "; cout<<a[n-1]<<endl; } return 0;}
- 顺序表应用3:元素位置互换之移位算法
- 顺序表应用3:元素位置互换之移位算法
- 顺序表应用3:元素位置互换之移位算法
- 顺序表应用3:元素位置互换之移位算法
- 顺序表应用3:元素位置互换之移位算法
- 顺序表应用3:元素位置互换之移位算法
- 顺序表应用3:元素位置互换之移位算法
- 顺序表应用3:元素位置互换之移位算法
- 顺序表应用3:元素位置互换之移位算法
- 顺序表应用3:元素位置互换之移位算法
- 顺序表应用3:元素位置互换之移位算法
- 顺序表应用3:元素位置互换之移位算法
- 顺序表应用3:元素位置互换之移位算法
- 顺序表应用3:元素位置互换之移位算法
- 顺序表应用3:元素位置互换之移位算法
- 顺序表应用3:元素位置互换之移位算法
- 顺序表应用3:元素位置互换之移位算法
- 顺序表应用3:元素位置互换之移位算法
- 周易六十四卦——风火家人卦
- NYOJ-2 括号配对问题
- mysql索引总结----mysql 索引类型以及创建
- NYOJ-214-单调递增子序列(二)
- 极客学习-nginx配置文件详解
- 顺序表应用3:元素位置互换之移位算法
- 坚持#第7天~兄弟武广一日游
- Microsoft SQL Server 2012 数据库安装图解
- Git-TortoiseGit完整配置流程
- (九)、面向对象初步
- Spinner的用法
- js实现文字纵向滚动
- 找球号(一)
- sublimetext3中pachage control的安装