時隔3天,最近真的有點事偷了個小懶,在此一定要自我檢討下,sorry,listo。
現在來談談鍊錶在c重的應用:
首先是鍊錶的概念以及意義:
鍊錶的出現就可以緩解使用陣列時記憶體的浪費問題,可以更高效的使資料儲存和使用。
鍊錶基礎理論:
可以將鍊錶的乙個結點看作有資料部分和指標部分構成的,所以,這裡用到結構體就可以很方便了,eg:
struct student
char name;
int num;
struct student *p;
這就是乙個簡單的結點的表示。
靜態鍊錶:
#include
#define null 0
struct student
;int main()
getch();
}這是靜態的鍊錶表示,其實很好理解,先定義好結點,然後做結點1,2,3,為每乙個結構體賦值,然後串聯結構體,使單個的結點變成鍊錶,最後乙個結尾為null 0;
動態鍊錶理解不是很深刻,所以明天總結動態鍊錶,加油,listo
快慢指標在鍊錶中的應用
快慢指標指的是定義兩個指標,這兩個指標的移動速度一快一慢,以此來製造出自己想要的差值,這個差值可以讓 我們找到鍊錶上相應的結點。一般情況下,快指標的移動步長為慢指標的兩倍 利用快慢指標,我們把乙個鍊錶看成乙個跑道,假設a的速度是b的兩倍,那麼當a跑完全程後,b剛好跑一半,以 此來達到找到中間節點的目...
快慢指標在鍊錶中的應用
快慢指標也是面試中的乙個常考知識點,主要是鍊錶的問題中應用較多。設定兩個指標 fast,slow 初始值都指向頭,slow每次前進一步,fast每次前進二步,如果鍊錶存在環,則fast必定先進入環,而slow後進入環,兩個指標必定相遇。當然,fast先行頭到尾部為null,則為無環鏈表 程式如下 0...
快慢指標在鍊錶的應用
快慢指標中的快慢指的是移動的步長,即每次向前移動速度的快慢。例如可以讓快指標每次沿鍊錶向前移動2,慢指標每次向前移動1次。1 判斷單鏈表是否為迴圈鍊錶 演算法 讓快慢指標從煉表頭開始遍歷,快指標向前移動兩個位置,慢指標向前移動乙個位置 如果快指標到達null,說明鍊錶以null為結尾,不是迴圈鍊錶。...