顺序表题目描述及代码实现
题目描述: 设计一个高效算法,将顺序表L的所有元素逆置,要求算法的空间复杂度为O(1)。
题目分析: 因为题目要求空间复杂度为O(1),所以我们首先考虑的就是不借助其他数组,在本数组上实现逆置,让其原地工作。初见到此题目时,我们会想到C语言的相关题目,就是实现数组元素逆置,通常我们会设置头、尾两个指针,同时交换头和尾的元素,头指针加1,尾指针减1,实现元素交换。
实现代码:
void reverse(sqList &L)
{
Elemtype temp;
for (int i = 0; i < L.length / 2; i++)
{
temp = L.data[i];
L.data[i] = L.data[L.length - 1 - i];
L.data[L.length - 1 - i] = temp;--
}
}