1. 程式人生 > >順序表及連結串列

順序表及連結串列

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

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

優點:儲存空間連續,允許元素隨機訪問;
缺點:長度固定,在分配記憶體之前要先確定好陣列長度,致使可能造成空間浪費;

 

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

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

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

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

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

 

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

優點:連結串列修改靈活性增強。

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

 

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

優點:

 

靜態連結串列——利用資料表示單鏈表,用資料元素(data域會next域)的下標模擬單鏈表指標;其中data域存放資料元素,next域存放後繼元素所在的陣列下標

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

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

 

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

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

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

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