順序表及鍊錶

2021-08-19 15:52:23 字數 837 閱讀 3394

順序表——將表中元素乙個接乙個的存入一組連續的儲存單元中,這種儲存結構是順序結構。

利用陣列單元的物理位置上的

優點:儲存空間連續,允許元素隨機訪問;

缺點:長度固定,在分配記憶體之前要先確定好陣列長度,致使可能造成空間浪費;

單鏈表——用一組任意的儲存單元存放線性表的元素,只包含指向下乙個節點的指標,只能單向遍歷;

資料以結點(一般為結構體型別)表示,每個結點由資料(型別為要儲存資料的型別)

+ 指標(結構體指標)所構成

優點:能動態儲存分配,所需儲存空間較小;

插入和刪除也無需移動元素,只用改變指標,效率會更高;

缺點:只允許依次向後查詢,直至到達特定的位置,查詢訪問效率低。

迴圈鍊錶——單鏈表中將終端結點的空指標域改指向頭結點,使單鏈表頭尾相接的鍊錶

優點:鍊錶修改靈活性增強。

缺點:沒有尾結點,操作失誤可能會死迴圈進行

雙鏈表——在單鏈表每個結點原先的基礎上增加指向前驅結點的指標域,可以雙向遍歷

優點:靜態鍊錶——利用資料表示單鏈表,用資料元素(

data

域會next

域)的下標模擬單鏈表指標;其中

data

域存放資料元素,

next

域存放後繼元素所在的陣列下標

優點:插入與刪除操作中不必移動元素,只需改游標;

缺點:對於連續儲存分配所產生的表長難以確定的問題無改色;

間接定址——利用指標與資料的關係,通過改變指標指向達成儲存的意圖

優點:儲存了順序表隨機訪問的優點;

改進了插入及刪除的時間效能;

缺點:沒有解決連續儲存分配帶來的表長難以確定的問題;

特殊鍊錶及順序表的合併

與單鏈表不同的地方 最後乙個結點的指標域指向l 某些情況下,若在迴圈鍊錶中設立尾指標而不設頭指標 見圖2.18 a 可使一些操作簡化。例如,將兩個線性表合併成乙個表時,僅需將第乙個表的尾指標指向第二個表的第38 第2章線性表乙個結點,第二個表的尾指標指向第乙個表的頭結點,然後釋放第二個表的頭結點。雙...

複習 順序表 鍊錶

鍊錶 鏈式儲存的線性表,簡稱鍊錶。鍊錶由多個鍊錶元素組成,這些元素稱為節點。結點之間通過邏輯連線,形成鏈式儲存結構。儲存結點的記憶體單元,可以是連續的也可以是不連續的。邏輯連線與物理儲存次序沒有關係。鍊錶分為兩個域 值域 資料域 用於存放結點的值 鏈域 指標域 用於存放下乙個結點的位址或位置 從記憶...

順序表與鍊錶

單向鍊錶 雙向鍊錶 迴圈鍊錶 插入刪除過程要注意,初始指標應指向鍊錶尾節點 若當插入到頭前時,找不到前驅節點 當在更新尾節點時需要更新頭指標 鍊錶排序使用氣泡排序最為適合 資料結構 結構定義 結構操作 include include include include define malloc2 my...