考研複試 資料結構第二章

2021-10-14 07:44:02 字數 864 閱讀 2932

1、順序儲存和鍊錶的比較

(1)訪問(讀寫)方式

順序表可以順序訪問,也可以隨機訪問,鍊錶只能從表頭順序訪問元素。例如在第i個位置上執行存或取的操作,順序表僅需一次訪問,而鍊錶則需從表頭開始依次訪問i次。

(2)邏輯結構與物理結構

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

(3)查詢、插入和刪除操作

對於按值查詢,順序表無序時,兩者的時間複雜度均為o(n);順序表有序時,可採用折半查詢,此時的時間複雜度為o(log2n)。

對於按序號查詢,順序表支援隨機訪問,時間複雜度僅為o(1),而鍊錶的平均複雜度為o(n)。順序表的插入、刪除操作,平均需要移動半個表長的元素。鍊錶的插入、刪除操作,只需修改相關結點的指標域即可。由於鍊錶的每個結點都帶有指標域,故而儲存密度不夠大。

(4)空間分配

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

2、頭指標和頭結點的區別?

頭指標:是指向第乙個節點儲存位置的指標,具有標識作用,頭指標是鍊錶的必要元素,無論鍊錶是否為空,頭指標都存在。

頭結點:是放在第乙個元素節點之前,便於在第乙個元素節點之前進行插入和刪除的操作,頭結點不是鍊錶的必須元素,可有可無,頭結點的資料域也可以不儲存任何資訊。

第二章 資料結構 二

知識點 trie樹 並查集,堆的操作 高效地儲存和查詢字串集合的資料結構 const int n 100010 int son n 26 cnt n idx 插入 void insert char str cnt p 以這個點結尾的字元數 查詢 intquery char str return cn...

資料結構 第二章總結

線性表是由n 0 個資料元素組成的有限序列。我們學習了線性表上定義的基本運算 有構造空表 initlist l 求表長 listlength l 取結點 getnode l i 查詢 locatenode l x 插入 insertlist l x,i 刪除 delete l i 還學習了順序表 單...

資料結構第二章總結

線性表簡稱表,是n個具有相同型別的資料元素的有限序列。線性表中資料元素的個數稱為線性表的長度。長度為零時稱為空表。線性表中資料元素的型別是同一的。線性表的順序儲存結構稱為順序表。儲存結構是資料及其邏輯結構在計算機中的表示 訪問結構是在乙個資料結構上對查詢操作的時間效能的一種描述。順序表的類的宣告 c...