1. 怎样写出在顺序存储结构下将线性表逆转的算法,要求使用最少的附加空间。
这不是很简单码?
头尾交换即可阿?
template <typename DataType>
const int N = 1024;
struct list{
DataType data[N];
int max;
};
typedef struct list List;
void reverseList(List &l)
{
for(int i=0;i<max/2;++i)
{
l.data[i] = l.data[i]+l.data[max-i-1];
l.data[max-i-1] = l.data[i]-l.data[max-i-1];
l.data[i] = = l.data[i]-l.data[max-i-1];
}
}
附加空间为1,(其实为0,i不算)。