靜態鍊錶的實現原理是hash,通過建立乙個結構體陣列,並令陣列的下標直接表示節點的位址,來達到直接訪問陣列中的元素就能訪問節點的結果。
靜態鍊錶不需要頭節點。
#includestruct nodenode[size];
由於可能要使用sort函式,在使用靜態鍊錶時盡量不要把結構體型別名和結構體變數名取成相同的名字。
靜態鍊錶的通用解題步驟:
1.定義靜態鍊錶
struct nodenode[size];
2.對靜態鍊錶初始化,對定義中的***初始化稱為乙個正常情況下達不到的數字。
3.根據題目中給出的一條鍊錶首節點的位址,來遍歷整條鍊錶,同時對***進行標記,(同時可以對有效節點進行計數)。
4.通過sor他函式對結構體陣列進行排序,將有效節點都移到結構體陣列的一端(如對***的性質進行從大到小排序等)。通過count的數值來訪問它
5.一般題目會有額外的要求,cmp函式中一般都有第二級排序,在對兩個節點都是有效節點的時候進行第二級排序。
6.之後根據題目的要求進行接下來的操作
演算法筆記 鍊錶
鍊錶結構如下 struct listnode int m nvalue listnode m pnext 1.輸入乙個鍊錶,輸出該鍊錶中倒數第k個結點。2.求鍊錶的中間結點。如果鍊錶中結點總數為奇數,返回中間結點,如果結點總數是偶數,返回中間兩個結點的任意乙個。3.判斷乙個單向鍊錶是否形成了環形結構...
演算法筆記 鍊錶
基本操作 建立鍊錶 尾插法和頭插法 include includeusing namespace std struct node 尾插法建立鍊錶 node create int array return head int main node l create array l l next while...
《演算法筆記》鍊錶
動態鍊錶的操作 增刪改查 鍊錶一般是帶頭結點的鍊錶,頭結點並沒有資料 遍歷鍊錶時,先令p head next,只要p非空,就可以一直迴圈 刪除鍊錶元素時,需要兩個指標,乙個指向將要刪除的元素,另乙個指向刪除元素的前驅 增加元素時,要先找到目標元素,然後新建乙個節點,在這個目標元素的後面加上新建節點 ...