1. 程式人生 > >《大話資料結構》----第三章---線性錶鏈式儲存結構

《大話資料結構》----第三章---線性錶鏈式儲存結構

目錄

一、為啥要單獨說線性表的鏈式儲存結構?

    由順序儲存結構的插入和刪除操作不方便,引出了鏈式儲存結構。它具有小受固定的儲存空間限制,可以比較快捷的插入和刪除操作的特點。作者就鏈式儲存結構的不同形式。如單鏈表、迴圈連結串列和雙向連結串列做了講解,另外還講了若不使用指標如何處理連結串列結構的靜態連結串列方法。

    線性表的鏈式儲存結構的特點是用一縱任意的儲存單元儲存線性表的資料元素,這組儲存單元可以是連續的,也可以是不連續的。這就意味著,這些資料元素可以存在記憶體未被佔用的任意位置。

鏈式儲存結構存在型別:(單鏈表;靜態連結串列;迴圈連結串列;雙向連結串列)

二、這些鏈式儲存結構分別是什麼樣的?

2.1 單鏈結構是怎麼樣的?

單鏈表正是通過每個結點的指標域將線rt:表的資料元素按其邏輯次序連結在一起,如圖3-6-2所示。

把連結串列中第一個節點的儲存位置叫做頭指標,那麼整個連結串列的存取就必須是從頭指標開始進行。  最後一個,當然就意味著直接後繼不存在了,所以我們規定,線性連結串列的最後一個結點指標為“空”(通常用NULL或“砂符號表不,如圖3-6-所示)。

有時,我們為了更加方便地對連結串列進行操作,會在單鏈表的第一個結點前附設一個結點、稱為頭結點頭結點的指標域儲存指向第一個結點的指標。如圖3-6-4

2.2 靜態連結串列又是怎麼定義的呢?

對於如Basic. Fortran等旱期的程式設計高階語言,由於沒有指標,連結串列結構按照前面我們的講法,它就沒法實現了。怎麼辦呢?    有人就想出來用陣列代替指標,來描述單鏈表

靜態列表實現:

    總的來說,靜態連結串列其實是為了給沒有指標的高階語言設計的一種實現單鏈表能力的方法。儘管大家不一定會用得上,但這樣的思考方式是非常巧妙的,應該理解其思想,以備不時之需。

2.3迴圈連結串列是如何定義的?

2.4雙向連結串列是為什麼產生的?