#include<iostream>
#include<cstdlib>
using namespace std;
typedef struct
{
int data[100];
int length;
}List;
void Init(List *&L)
{
L=(List *)malloc(sizeof(List));
L->length=0;
}
void Creat(List *&L)
{
int i,n;
cin>>n;
L->length=n;
for(i=0;i<n;i++)
{
cin>>L->data[i];
}
}
bool YD(List *&A,List *&B,int p) //p为左移的位数
{
int i,j=0;
if(p<=0 || p>=A->length) return false;
for(i=p;i<A->length;i++)
B->data[j++]=A->data[i];
for(i=0;i<p;i++)
B->data[j++]=A->data[i];
B->length=j;
return true;
}
void Disp(List *&L)
{
int i;
for(i=0;i<L->length;i++)
{
cout<<L->data[i]<<' ';
}
}
int main()
{
List *A,*B;
int p;
Init(A);
Init(B);
Creat(A);
cin>>p;
if(YD(A,B,p)) Disp(B);
else cout<<"error!";
return 0;
}
SWUST数据结构--顺序表中数据的循环移动
最新推荐文章于 2022-04-03 20:05:37 发布