0
点赞
收藏
分享

微信扫一扫

顺序表循环左移


对于顺序表 L=(a0,a1,…,an−1),循环左移 k位意味着将顺序表变为 Lk=(ak,ak+1,…,an−1,a0,a1,…,ak−1)。

比如:长度为 8 的顺序表 (1,2,3,4,5,6,7,8),循环左移 3 位后的结果为 (4,5,6,7,8,1,2,3)。
输入格式

第一行输入两个整数 n(1≤n≤100),分别表示顺序表的元素个数和循环左移的位移量。

第二行一共 n 个整数 ai(0≤ai≤10000),表示顺序表中元素的值。
输出格式

输出只有一行,输出 n 个整数,顺序输出循环左移后顺序表中每个元素的值,每个元素之间用一个空格分隔。行末不要有多余空格。

#include <stdio.h>
typedef struct Vector {
int size,length;
int *data;
}Vector;

void init(Vector *vector, int size) {
vector->size = size;
vector->length = 0;
vector->data = (int *)malloc(sizeof(int) * size);
}


void main(){
int n,k;
Vector *a = (Vector *)malloc(sizeof(Vector));
scanf("%d %d",&n,&k);
init(a,n);
//a->length = n;
for(int i = 0; i < n; i++) {
scanf("%d",&a->data[i]);
}
for(int i = k; i < n; i++) {
if(i != k) printf(" ");
printf("%d",a->data[i]);
}
for(int i = 0; i < k; i++) {
printf(" %d",a->data[i]);
}
return 0;
}


举报

相关推荐

0 条评论