1. 程式人生 > >試分別以順序表和單鏈表作儲存結構,各寫一實現線性表就地逆置的演算法

試分別以順序表和單鏈表作儲存結構,各寫一實現線性表就地逆置的演算法


對陣列的倒置
void SeqList<DataType>::inversion()
{
    int i = 0, j = length - 1;
    DataType temp;
    while(i < j)
    {
        temp = data[i];
        data[i++] = data[j];
        data[j--] = temp;
    }
} 

對連結串列的倒置
void SeqList<DataType>::inversion()
{
    Node<DataType> * p, * q;
    p = first->next;
    q = p->next;
    while(q != NULL)
    {
        p = q;
        q = q->next;
        p->next = first->next;
        first->next = p;
    }

}