1. 程式人生 > >寒假 12 (表的鏈表實現徹底結束,find kth未解決)

寒假 12 (表的鏈表實現徹底結束,find kth未解決)

移動 中間變量 順序 編譯 默認 想要 改變 元素操作 ins

表:元素,元素個數,元素相對關系;元素操作:find,delete,insert,print,make null

簡單數組實現:

元素都被加上了有自然順序節點的鏈條,要預先估計一個較高的長度,有空間浪費。每次insert或delete時,因為自然節點固定要整體移動,占用時間。

鏈表實現:

不連續存儲,概念裏沒有固定的位置編號,僅可以從value上識別,尋找,一個element或一個位置;或者直接用絕對地址調用

具體步驟:建立node結構並連綴,處理函數實現

相關技巧:

使用typedef,對該結構使用中要用到的類型進行定義,避免多次長聲明,且數據的結構更加清晰

小知識:

靜態變量只在編譯時聲明一次,以後的聲明語句會被忽略,不會分配新的空間,所有的操作都作用到了第一次分配的地址上,在程序結束後釋放空間。即使用函數宏##每次聲明時都更改變量名,也還是一樣的效果,這個我不知道為什麽

變量反身修改,一般要借助一個承載原值的中間變量

想要通過代碼塊修改變量,應該給代碼塊傳遞指針,否則只能修改原值的一個copy

直接以要返回的變量為中心考慮循環條件,條件較為間接時再考慮設置中間參考量

malloc和free在stdlib.h中。代碼塊中的malloc比聲明為靜態更為靈活,可重復分配,默認程序結束時回收,返回申請得到的地址,如果空間申請不到返回null

把 源代碼原稿 分成 頭文件.h 和 源文件.c,一個包含各種原型聲明,一個包含各種定義

main程序用到某些函數或結構的時候,include頭文件.h,語句中直接用就好

main中定義很少,都是語句,而且進程模塊化吧

寒假 12 (表的鏈表實現徹底結束,find kth未解決)