1、字符串
void reverse(char *first,char*last)
{
char temp;
while(first<last)
{
temp=*first;
*first=*last;
*last=temp;
first++;
last--;
}
}
2、顺序表
一维数组
void reverse(int* matrixColSize,int matrixSize){
int temp,first=0,last;
last=matrixSize-1;
//C++中matrixSize直接用数组.size()方法
//C中,sizeof(matrixcolSize)/sizeof(int)算的是预分配的数组个数,不一定是实际个数
while(first<last)
{
temp=matrixColSize[first];
matrixColSize[first]=matrixColSize[last];
matrixColSize[last]=temp;
first++;
last--;
}
}
for (int j = 0; j < matrixSize/2; j++) {
int temp;
temp=matrix[j];
matrix[j]=matrix[matrixSize - j - 1];
matrix[matrixSize - j - 1]=temp;
}
void reverse2 (int* matrixColSize,int first,int last)
{
int mid=(first+last)/2;
for(int i=0;i<mid-first;i++)
{
temp=matrixColSize[first+i];
matrixColSize[first+i]=matrixColSize[last-i];
matrixColSize[last-i]=temp;
}
}
二维数组
用一维数组reverse(),不断调用
for(int i=0;i<matrixSize;i++)
{
reverse(matrix[i],matrixSize);
}
每一行都进行反转
for(int i = 0; i < matrixSize; i++) {
for (int j = 0; j < matrixSize/2; j++) {
int temp;
temp=matrix[i][j];
matrix[i][j]=matrix[i][matrixSize - j - 1];
matrix[i][matrixSize - j - 1]=temp;
}
}