這幾天練習了下線性表的逆置,順序表比較簡單,就是陣列的位置交換。
順序表的逆置
單鏈表的逆置
頭插法就地逆置
遞迴順序表的逆置:
中間變數temp,交換首位兩個元素的位置。
void listreverse(sqlist &l)sqlist;
status listinit(sqlist &l)
status listprint(sqlist l)
elemtype *p=&(l.elem[pos-1]);
elemtype *q=&(l.elem[l.length-1]);
for(;q>=p;q--)
*p=e;
l.length++;
return true;
}void listreverse(sqlist &l)
listreverse(la);
listprint(la);
}
執行結果如下:
單鏈表的逆置:
linklist reverselinklist(linklist &l)
linklist newh=(linklist)malloc(sizeof(lnode));
newh->next=prev;
return newh;
}
就地逆置最終prev指向原來鍊錶的尾元結點,需要新建乙個頭結點指向prev,否則該單鏈表是無頭結點的。
過程如下:
linklist recursionreverse(linklist &l)
遞迴是從最後乙個結點開始之前的結點逐個返回,但是需要將每一次返回的l->next設定成null,否則下一次遞迴會使l->next->next指向的結點發生改變。
過程如下:
鍊錶的部分基本操作包含在第乙個完整**中。
線性表(二) 單鏈表(4) 單鏈表的逆置
all right resvered 檔名稱 單鏈表的逆置.cpp 作 者 鄭兆涵 線性表 二 單鏈表 4 問題 設計乙個演算法,將乙個帶頭結點的資料域依次為a1,a2,an n 3 的單鏈表的所有結點逆置,即第乙個結點的資料域變為an,最後乙個結點的資料域為a1。實現這個演算法,並完成測試。程式設...
轉 線性表(順序表和單鏈表)
大神 權侵刪 一 定義 是n個型別相同的資料元素的有限序列。線性表元素的個數n n 0 定義為線性表的長度,當n 0時,稱為空表。在較複雜的線性表中,乙個資料元素可以由若干個資料項組成。三 線性表的順序儲存結構 1 順序儲存定義 線性表的順序儲存結構,指的是用一段位址連續的儲存單元依次儲存線性表的資...
線性表 順序表與單鏈表(模板)
順序表 線性表的順序儲存結構,靜態儲存分配,通常用一位陣列來實現 include using namespace std const int maxsize 100 template typename t class seqlist template typename t seqlist seqli...