试写一算法,实现顺序表的就地逆置,即利用原表的存储空间将线性表(a1,a2,……,an)逆置为(an,an-1,……,a2,a1)
时间: 2023-04-28 17:00:34 浏览: 313
顺序表的就地逆置的算法
算法如下:
1. 定义两个指针i和j,分别指向顺序表的第一个元素和最后一个元素。
2. 循环执行以下步骤,直到i>=j:
a. 交换i和j指向的元素。
b. i指针向后移动一位。
c. j指针向前移动一位。
3. 完成逆置。
代码实现:
void reverse(SqList &L)
{
int i = , j = L.length - 1;
while (i < j)
{
int temp = L.data[i];
L.data[i] = L.data[j];
L.data[j] = temp;
i++;
j--;
}
}
其中,SqList为顺序表的结构体,包含data数组和length长度属性。
阅读全文