天天看點

C#單連結清單(資料結構)

學習單連結清單的源碼項目:http://files.cnblogs.com/xmfdsh/csharp%e5%8d%95%e9%93%be%e8%a1%a8.rar

連結清單是用一組任意的存儲單元來存儲線性表中的資料元素(在存儲單元中可以是連續的,也可以是不連續的)。連結清單在存儲資料元素時,除了存儲資料元素本身的資訊外,還要存儲與它相鄰的資料元素的存儲位址資訊。這兩部分資訊組成該資料元素的存儲映像,稱為節點。

節點的形象圖如下:

C#單連結清單(資料結構)

首先定義一個類node來表示這些節點:

通常,我們把連結清單化成用箭頭相連接配接的節點序列,節點間的箭頭表示引用域中存儲的位址。具體單連結清單的形式表示如下:

C#單連結清單(資料結構)

網上找到 圖檔,把循環清單 和 雙向連結清單都弄上去了,也好提前了解下

是以要定義一個類表示整個連結清單,其中中間當然運用到了之前寫node類,類中的屬性如下:

接下來就是實作之前講的順序表中定義好的接口 http://www.cnblogs.com/xmfdsh/p/3698456.html

實作這些接口都不難,還是要了解連結清單的具體操作原理,隻是記代碼是沒用的,不用多久就忘的差不多,p.next等這些地方可以聯想到c中的指針,不過c中的指針有時挺危險的,c#中的也許就安全多了吧。

然後再玩玩一些經典題目,首先就是單連結清單倒置

再做個題目:構造單連結清單hb,要求hb隻包含ha表中所有值不相同節點