線性結構(順序儲存和鏈式儲存)和非線性結構的特點及區別

原來的1024發表於2020-11-23

1. 線性結構

特點:除第一個元素只有一個“後繼”和最後一個元素只有一個“前驅”,其它每個元素只有一個“前驅”元素和一個“後繼”元素。

常見的線性結構有:  陣列、連結串列、棧以及佇列。注意:棧和佇列本身不是一種資料結構,可通過陣列或連結串列實現。

1.1 線性結構又分為順序儲存和鏈式儲存

線性結構又分為順序儲存和鏈式儲存,順序儲存:各個元素儲存的地址空間連續,邏輯相鄰的元素在實體記憶體中也相鄰,如陣列;

鏈式儲存:各個元素儲存在任意的地址空間,邏輯相鄰的元素在實體記憶體中沒有聯絡,如連結串列。

1.2 順序儲存和鏈式儲存的區別

1.2.1 順序儲存

優點:① 因為各個元素是連續儲存,而且當元素型別一致時佔用空間大小一致,所以可以直接通過首元素地址計算

               某個元素的記憶體地址,從而訪問特定元素效率很高

          ② 對於有序陣列,還可以通過二分查詢提高元素查詢的速度

缺點:① 由於順序儲存的特點,所以在刪除或插入元素後需要移動其它元素使得整體的儲存空間依然是連續的,

               所以刪除、插入元素效率低,如下圖

           ② 由於元素儲存空間連續,所以當有大資料時,較難分配一塊連續的大記憶體空間

 

1.2.2 鏈式儲存

優點:① 由於鏈式儲存的特點,刪除或插入節點很方便,不需要移動其它元素,改變元素“連線”關係即可

               所以刪除、插入元素效率高,如下圖

缺點:① 因為儲存的任意性,只能通過前一個元素訪問下一個元素,每一次訪問元素都從頭節點開始遍歷,

               所以訪問特定元素或查詢元素效率低

 

2. 非線性結構

特點:每個元素可以和多個元素“連線”。

常見的非線性結構:二維陣列、樹和圖。

 

 

相關文章