.[题目分析] 顺序存储结构的线性表的逆置只需一个变量辅助空间算法核心是选择循环控制变量的初值和终值
void SeqInvert(ElemType a[ ]int n)∥a是具有n个元素用一维数组存储的线性表本算法将其逆置
{for(i=;i<=(n)/;i++)
{t=a[i];a[i]= a[ni];a[ni]=t;}
}∥算法结束
[算法讨论] 算法中循环控制变量的初值和终值是关键C中数组从下标开始第n个元素的下标是n因为首尾对称交换所以控制变量的终值是线性表长度的一半当n为偶数一半恰好是线性表长度的二分之一;若n是奇数一半是小于n/的最大整数这时取大于/的最小整数的位置上的元素恰是线性表中间位置的元素不需要逆置另外由于pascal数组通常从下标开始所以上下界处理上略有不同这点请读者注意
类似本题的其它题的解答
这一组又选了个题都是单链表(包括单循环链表)的逆置链表逆置的通常作法是将工作指针指向第一个元素结点将头结点的指针域置空然后将链表各结点从第一结点开始直至最后一个结点依次前插至头结点后使最后插入的结点成为链表的第一结点第一个插入的结点成为链表的最后结点
[] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] []