順序表及連結串列
阿新 • • 發佈:2018-12-13
順序表——將表中元素一個接一個的存入一組連續的儲存單元中,這種儲存結構是順序結構。
利用陣列單元的物理位置上的
優點:儲存空間連續,允許元素隨機訪問;
缺點:長度固定,在分配記憶體之前要先確定好陣列長度,致使可能造成空間浪費;
單鏈表——用一組任意的儲存單元存放線性表的元素,只包含指向下一個節點的指標,只能單向遍歷;
資料以結點(一般為結構體型別)表示,每個結點由資料(型別為要儲存資料的型別) + 指標(結構體指標)所構成
優點:能動態儲存分配,所需儲存空間較小;
插入和刪除也無需移動元素,只用改變指標,效率會更高;
缺點:只允許依次向後查詢,直至到達特定的位置,查詢存取效率低。
迴圈連結串列——單鏈表中將終端結點的空指標域改指向頭結點,使單鏈表頭尾相接的連結串列
優點:連結串列修改靈活性增強。
缺點:沒有尾結點,操作失誤可能會死迴圈進行
雙鏈表——在單鏈表每個結點原先的基礎上增加指向前驅結點的指標域,可以雙向遍歷
優點:
靜態連結串列——利用資料表示單鏈表,用資料元素(data域會next域)的下標模擬單鏈表指標;其中data域存放資料元素,next域存放後繼元素所在的陣列下標
優點:插入與刪除操作中不必移動元素,只需改遊標;
缺點:對於連續儲存分配所產生的表長難以確定的問題無改色;
間接定址——利用指標與資料的關係,通過改變指標指向達成儲存的意圖
優點:儲存了順序表隨機存取的優點;
改進了插入及刪除的時間效能;
缺點:沒有解決連續儲存分配帶來的表長難以確定的問題;