题目要求
关于逆置,有一种非常暴力的解决方法,就是单独开辟一个同等大小的线性表,然后新表从前往后遍历,同时原表从后往前遍历,依次赋值,最后得到的就是逆置后的线性表。
但这种方法的空间复杂度为O(n),所以并不能这么做。而且题目要求的是线性表编程过程中可直接定位的顺序表,所以没必要那么浪费空间,只需让顺序表中的数据元素头尾依次调换即可。
基本思想
从下标为0的元素开始,扫描顺序表L中的前半部分元素,将L.data[i]与L.data[L.length-i-1]对调。
核心代码
这里采用静态分配空间的顺序表
void Reverse(SqList &L)
{
ElemType temp;//临时空间
for (int i = 0; i < L.length/2; i++)
{
temp = L.data[i];
L.data[i