线性表逆置
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); }