顺序表循环左移p个位置

#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#define maxsize 100
using namespace std;

typedef struct{
  int data[maxsize];
  int length;
}Sqlist;

void reverse(Sqlist &A,int p,int q)
{
 int i=p,j=q-1,temp=0;
 while(i<j)
  {
      temp=A.data[i];
      A.data[i]=A.data[j];
      A.data[j]=temp;
      i++;
      j--;
  }
}
void RCR(Sqlist &A,int p)
{
    reverse(A,0,p);
    reverse(A,p,A.length);
    reverse(A,0,A.length);
}
int main()
{
    Sqlist A;
    int i;
    scanf("%d",&A.length);
    for(i=0;i<A.length;i++) scanf("%d",&A.data[i]);
    int p;
    scanf("%d",&p);
    RCR(A,p);
    for(i=0;i<A.length;i++) printf("%d ",A.data[i]);
    return 0;
}

猜你喜欢

转载自blog.csdn.net/qq_39350434/article/details/81264793