.[題目分析] 順序存儲結構的線性表的逆置只需一個變量輔助空間算法核心是選擇循環控制變量的初值和終值
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數組通常從下標開始所以上下界處理上略有不同這點請讀者注意
類似本題的其它題的解答
這一組又選了個題都是單鏈表(包括單循環鏈表)的逆置鏈表逆置的通常作法是將工作指針指向第一個元素結點將頭結點的指針域置空然後將鏈表各結點從第一結點開始直至最後一個結點依次前插至頭結點後使最後插入的結點成為鏈表的第一結點第一個插入的結點成為鏈表的最後結點
[] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] [] []
From:http://tw.wingwit.com/Article/program/sjjg/201311/23332.html