Preface:
這部分主要是我考研之前的總結,留作以後用到時再翻出來看看。都是基礎的知識點,望各(Da)位(Lao)不喜勿噴,歡迎指正。
適用人群:考研複習過一遍資料結構的,可以看看,查漏補缺(順便幫我指出問題,肯定會有不少問題)或者對資料結構的基本知識想有一個系統性的梳理。
多說一句,這些,遠遠不夠...
Chapter 1 線性表
1- 兩種儲存結構的比較
答:
順序表:隨機訪問特性,佔用連續儲存空間,靜態分配,儲存密度大。(查詢)
連結串列:不支援隨機訪問,結點的儲存空間利用率較順序表低,動態分配。(插入,刪除)
//在刪除連結串列中某結點時,需要找到它的前驅結點。
//先將要插入結點兩端的兩邊連結好,這樣就可以保證不會發生斷鏈後找不到結點的情況。
2- 線性表的鏈式儲存結構
注:
1- 順序表:定義、插入O(n)、刪除O(n)、按值查詢(順序查詢)O(n)。
2- 單連結串列:定義、建立單連結串列(頭、尾)O(n)、按序號查詢結點值O(n)、按值查詢表結點O(n)、插入O(n)、刪除O(n)、求表長O(n)。
3- 單連結串列中引入頭結點的目的是為了操作簡單。
4- 雙連結串列:定義、插入、刪除。
5- 迴圈單連結串列(不設頭指標而只設尾指標效率更高)
帶有表尾指標的對錶尾插入、表頭插入刪除為O(1)。
對錶尾刪除O(n),需要找到前驅結點。
6- 迴圈雙連結串列:對帶頭節點的迴圈雙連結串列四種操作均為O(1)。
7- 靜態連結串列(陣列)。
8- 查詢:無序,順序和連結串列均為O(n),有序:順序表可用折半查詢O(log2n)。