C语言实现顺序表的倒置(逆置)(逆序)
这里涉及到数据结构中顺序表的实现、删除、插入、查找等知识,请查看:数据结构 -> 线性表
本题代码如下:
问题描述:
设计一个高效的算法,将顺序表的所有元素逆置,要求算法的空间复杂度为O(1)。问题解答:
算法思想:扫描顺序表L的前半部分元素,对于元素L.data[i] (0<=i<L.lengh/2),将其余后半部分对应元素L.data[L.length-i-1]进行交换。本题代码如下:
void Reverse(Sqlist &L){ Elemtype temp; //辅助变量 for(i=0;i<L.length/2;i++){ temp=L.data[i]; //交换 L.data[i]与 L.data[L.length-i-1] L.data[i]=L.data[L.length-i-1]; L.data[L.length-i-1]=temp; } }