線性表的基本感念與實現

1.線性表的定義

    是具有相同特性數據元素的一個有限序列。元素個數叫線性表的長度。

    線性表是一種簡單的數據結構,可以有序,也可以無序。

2.線性表的邏輯特性

    一個學生在隊頭,一個在隊尾,除了隊頭和隊尾,其他元素只有一個直接前驅,一個直接後續。

3.線性表的存儲結構

    1)順序存儲結構(順序表):把元素按照其邏輯順序存儲。具有 隨機訪問特性。

    2)鏈式存儲結構(鏈表):每個結點不僅包含所存元素信息,還包含元素之間邏輯關係的信息。不支持隨機訪問。

    

4.鏈表有五種形式

    1)單鏈表(單向)

         a.帶頭結點的單鏈表(有一個結點,不存儲信息)

         b.不帶頭結點的單鏈表(所有結點都存儲信息)

    2)雙鏈表(雙向)

    3)循環單鏈表

    4)循環雙鏈表

    5)靜態鏈表

    單鏈表如上圖所示的單行車道,只允許車輛往一個方向行駛;

    雙鏈表如上圖所示的雙向車道,車輛既可以從左往右行駛,也可以從右往左行駛;

    循環單鏈表如上圖所示的單向環形車道,車輛可沿着一個方向行駛在這條車道上

    循環雙鏈表如上圖所示的雙向環形車道,車輛可以沿着兩個方向行駛在這條車道上。

5.順序表和鏈表比較【重要】

    5.1 基於空間的比較

        1)存儲分配的方式

              順序表的存儲空間是一次性分配的。

              鏈表的存儲空間是多次分配的。

        2)存儲密度(存儲密度 = 結點值域所佔的存儲量 / 結點結構所佔的存儲總量)

              順序表的存儲密度 = 1

              鏈表的存儲密度 < 1 (因爲結點中有指針域)

    5.2 基於時間的比較

        1)存儲方式

              順序表可以隨機存取,也可以順序存取

              鏈表只能順序存取

        2)插入/刪除時移動元素個數

              順序表平均需要移動近一半元素

              鏈表不需要移動元素,只需要修改指針

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章