试写一算法,实现顺序表的就地逆置。
即利用原表的存储空间将线性表(a1,a2,…,an)
逆置为(an,an-1,…,a1)。
实现下列函数:
void Inverse(SqList &L);
顺序表类型定义如下:
typedef struct {
ElemType *elem;
int length;
int listsize;
} SqList;
void Inverse(SqList &L)
typedef int DataType;
struct SeqList
{
DataType *data;
int maxSize;
int length;
SeqList(int sz = 20)
{
maxSize = sz > 20 ? sz : 20;
data = new DataType[maxSize];
length = 0;
}
};
void Swap(DataType &a, DataType &b)
{
DataType tmp = a;
a = b;
b = tmp;
}
void Inverse(SeqList &list)
{
int i, j;
for(i = 0, j = list.length - 1; i < j; i++, j--)
Swap(list.data[i], list.data[j]);
}
到百度上搜搜了,希望可以帮到你