线性表逆置

1.顺序表逆置

void turnback(int a[],int left,int right){
    int i=left,j=right;
    int temp=0;
    for(i,j;i<j;i++,j--){
        temp=a[i];
        a[i]=a[j];
        a[j]=temp;
    }
}

2.单链表的逆置

 

 

 

 3.例

 

 

void reverse(int a[],int left,int right,int k){
    int temp;
    for(int i=left,j=right;i<left+k && i<j;i++,j--){
        temp=a[i];
        a[i]=a[j];
        a[j]=temp;
    }
}

 

 

 

 4.真题

 

 

void reverse(int a[],int left,int right,int k){
    int temp;
    for(int i=left,j=right;i<left+k && i<j;i++,j--){
        temp=a[i];
        a[i]=a[j];
        a[j]=temp;
    }
}
void moveP(int a[],int n,int p){
    reverse(a,0,p-1,p);
    reverse(a,p,n-1;n-p);
    reverse(a,0,n-1,n);
}

 

posted on 2020-06-21 12:27  二进制dd  阅读(278)  评论(0编辑  收藏  举报

导航