#include <bits/stdc++.h>
using namespace std;
#define LISTINCREASMENT 100
#define LISTSIZE 10010
#define OVERLFLOW -1
#define OK 1
typedef 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) return OVERFLOW;
L.length=0;
L.listsize=LISTSIZE;
return OK;
}
int ListInsert(Sqlist &L,int i, ElemType e)
{
if(L.length >= L.listsize)
{
ElemType *newbase=(ElemType*)realloc(L.elem,(L.listsize+LISTINCREASMENT)*sizeof(ElemType));
L.elem = newbase;
L.listsize+=LISTINCREASMENT;
}
ElemType *q= &(L.elem[i]);
*q = e;
++L.length;
return OK;
}
void exchang(Sqlist &L, int m)
{
for(int i = 0,j = m; j < L.length; i++,j++)
{
int tmp = L.elem[j];
for(int k = j; k > i; k--)
L.elem[k] = L.elem[k-1];
L.elem[i] = tmp;
}
}
void print(Sqlist &L)
{
for(int i = 0; i < L.length; i++)
{
i == L.length-1 ? cout << L.elem[i] << endl : cout << L.elem[i] << ' ';
}
}
int main()
{
int k;
int n,m;
cin >> k;
while(k --)
{
Sqlist L;
SqInitial(L);
scanf("%d %d", &n, &m);
for(int i = 0; i < n; i++)
{
int e;
scanf("%d",&e);
ListInsert(L,i,e);
}
exchang(L,m);
print(L);
}
return 0;
}
顺序表应用3:元素位置互换之移位算法
最新推荐文章于 2020-05-14 22:19:05 发布