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不算)。