数据结构顺序表题目(2)

顺序表题目描述及代码实现

题目描述: 设计一个高效算法,将顺序表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;--
	}
}

猜你喜欢

转载自blog.csdn.net/ATTAIN__/article/details/107894014