順序表和煉表的比較

2021-09-28 12:20:24 字數 1016 閱讀 9771

順序表和煉表的比較,訪問方式,順序表可以順序儲存,也可以隨機訪問,鍊錶只可以從表頭順序訪問元素。

邏輯結構和物理結構,採用順序儲存時,邏輯上相鄰的的元素,其對應的物理儲存位置也相鄰,而採用鏈式儲存的時候,邏輯上相鄰的元素,其物理儲存位置不一定相鄰,其對應的邏輯關係是通過指標鏈結來表示的。

查詢和刪除的操作,對於按值查詢,當順序表支援隨機訪問,時間複雜度為o1,而鍊錶的平均時間複雜度為on。順序表的插入和刪除操作,平均需要移動半個表長的元素。鍊錶的插入,刪除操作,只需要修改相關的結點的指標域即可。由於鍊錶每個結點帶有指標域,因而在儲存空間上比順序儲存要付出更大的代價,儲存的密度不夠大。

空間分配,順序儲存在靜態儲存分配的情形下,一旦儲存空間裝滿就不能擴充,如果再加入新元素將出現記憶體溢位,需要預先分配足夠大的儲存空間。預先分配過大,可能會導致順序包後部大量閒置,預先分配過少,又會造成溢位。動態儲存分配雖然儲存空間可以擴充,但需要移動大量元素,導致操作效率降低,而且若記憶體中沒有大塊的連續儲存空間將導致分配失敗,鏈式儲存的結空間只在需要的時候時候申請分配,只要記憶體又空間就可以分配,操作靈活,高效。

在實際中應該怎樣選取儲存結構呢。

1.基於儲存的考慮。對線性表的長度或者儲存規模難以估計,不宜採用順序表,鍊錶不事先預估儲存規模,但是鍊錶的儲存密度較低,顯然鏈式儲存的結構密度是小於1。

2,基於運算的考慮,在順序表中按序號訪問a1的時間複雜度為o1,而鍊錶中按照序號訪問的時間複雜度為on。所以如果經常做的運算是按序號訪問資料元素,顯然順序表優於鍊錶。

在順序表中做插入刪除操作的時候,平均移動表中一半的元素,當資料元素的資訊量較大且表較長的時候。這一點不應該忽略,在鍊錶中做插入,刪除操作時,雖然也要找插入位置,但操作主要是比較操作,從這個角度考慮顯然後者優先於前者。

3.基於環境的考慮,順序表容易實現,任何高階語言中都有陣列型別,鍊錶的操作是基於指標的,相對來講,前者實現較為簡單,這也是使用者考慮的乙個因素。總之,兩種儲存結構各有長短,選擇哪一種由實際問題所決定的,通常較穩定的線性表選擇順序儲存,而頻繁做插入,刪除的操作的線性表選擇鏈式儲存。

順序表和煉表的比較

這段時間開始學習軟考裡面的內容,對順序表和煉表,比較著學習理解的更多了,跟大家分享一下。儲存密度 順序表儲存乙個資料用乙個空間 而鏈式儲存,儲存資料的同時還要儲存指標,此時用鏈式表儲存資料要用兩個空間。所以,儲存密度 資料的密度 上,順序儲存更優 2 容量分配 我們使用的陣列採用順序儲存的方式,在使...

順序表和煉表的比較

順序表和煉表是線性表的兩個分類,其中,邏輯順序和物理順序相同為順序表,不同為鍊錶。下面從以下方面對比一下兩者的異同點。順序表單鍊錶 訪問方式 順序訪問和隨機訪問 順序訪問,通過相鄰表示邏輯關係 邏輯結構和物理結構 邏輯和物理都相鄰 邏輯相鄰,物理不一定相鄰,通過指標表示邏輯關係 基本操作 1 插入 ...

順序表和煉表的比較

通常從空間效能和時間效能兩個方面比較分析 1.空間效能的比較 線性表長度變化大,難以預估儲存規模,用鍊錶 線性表長度變化不大,能事先確定儲存大小,用順序表 a.儲存空間的分配 順序表的儲存空間必須預先分配,元素個數擴充受限,易造成儲存空間浪費或空間溢位現象 鍊錶無需預先分配空間,記憶體空間允許時,元...