2 10順序與鍊錶綜合比較

2021-10-06 02:06:29 字數 1232 閱讀 5279

順序表和煉表這兩種儲存表示方法各有優缺點。在實際應用中究竟選用哪一 種儲存結構呢?這要根據具體的要求和性質決定.

順序表的儲存空間是靜態分配的,在程式執行之前必須明確規定它的儲存規 模。若線性表的長度 n 變化較大,則儲存規模難於預先確定。估計過大將造成空 間浪費,估計太小又將使空間溢位的機會增多。在靜態鍊錶中,初始儲存池雖然 也是靜態分配的,但若同時存在若干個結點型別相同的鍊錶,則它們可以共享空 間,使各鍊錶之間能夠相互調節餘缺,減少溢位機會。動態鍊錶的儲存空間是動 態分配的,只要記憶體空間尚有空閒,就不會產生溢位。因此,當線性表的長度變 化較大,難以估計其儲存規模時,採用動態鍊錶作為儲存結構較好。

儲存密度(storage density)是指結點資料本身所佔的儲存量和整個結點結構 所佔的儲存量之比,即:儲存密度=結點資料本身所佔的儲存量/結點結構所佔的 儲存總量鍊錶中的每個結點,除了資料域外,還要額外設定指標(或游標)域, 從儲存密度來講,這是不經濟的。

一般地,儲存密度越大,儲存空間的利用率就高。顯然,順序表的儲存密度 為 1,而鍊錶的儲存密度小於 1。例如單鏈表的結點的資料均為整數,指標所佔 空間和整型量相同,則單鏈表的儲存密度為 50%。因此若不考慮順序表中的備用 結點空間,則順序表的儲存空間利用率為 100%,而單鏈表的儲存空間利用率為 50%。由此可知,當線性表的長度變化不大,易於事先確定其大小時,為了節約 儲存空間,宜採用順序表作為儲存結構。

順序表是由向量實現的,它是一種隨機訪問結構,對錶中任一結點都可以在 o (1) 時間內直接地訪問,而鍊錶中的結點,需從頭指標起順著鏈找才能取得。 因此,若線性表的操作主要是進行查詢,很少做插入和刪除時,宜採用順序表做 儲存結構。

在鍊錶中的任何位置上進行插入和刪除,都只需要修改指標。而在順序表中 進行插入和刪除,平均要移動表中近一半的結點,尤其是當每個結點的資訊量較 大時,移動結點的時間開銷就相當可觀。因此,對於頻繁進行插入和刪除的線性 表,宜採用鍊錶做儲存結構。若表的插入和刪除主要發生在表的首尾兩端,則宜 採用尾指標表示的單迴圈鍊錶。

在沒有提供指標型別的高階語言環鏡中,若要採用鍊錶結構,則可以使用光 標實現的靜態鍊錶。雖然靜態鍊錶在儲存分配上有不足之處,但它是和動態鍊錶 一樣,具有插入和刪除方便的特點。

值得指出的是,即使是對那些具有指標型別的語言,靜態鍊錶也有其用武之 地。特別是當線性表的長度不變,僅需改變結點之間的相對關係時,靜態鍊錶比 動態鍊錶可能更方便。

順序表和煉表的比較

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

順序表和煉表的比較

順序表和煉表的比較,訪問方式,順序表可以順序儲存,也可以隨機訪問,鍊錶只可以從表頭順序訪問元素。邏輯結構和物理結構,採用順序儲存時,邏輯上相鄰的的元素,其對應的物理儲存位置也相鄰,而採用鏈式儲存的時候,邏輯上相鄰的元素,其物理儲存位置不一定相鄰,其對應的邏輯關係是通過指標鏈結來表示的。查詢和刪除的操...

順序表和煉表的比較

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