《大話資料結構》筆記

2021-06-28 20:55:15 字數 2353 閱讀 4927

第一章

1.程式設計的實質是對確定的問題選擇乙個好的資料結構,加上設計一種好的演算法。

2.資料元素:是組成資料的、有一定意義的基本單位,在計算機中通常作為整體處理, 也被稱為記錄。乙個資料元素可以自若干個資料項組成,資料項是資料不可分割的最小單位。

3.資料結構分為邏輯結構和物理結構。

4.邏輯結構分為以下四種:集合結構、線性結構、樹形結構、圖形結構。

5.物理結構:是指資料的邏輯結構在計算機中的儲存形式。

儲存器主要是針對記憶體而言的,像硬碟、軟盤、光碟等外

部存俯器的資料組織通常用檔案結構來描述。

6.資料的儲存結構應正確反映資料元素之間的邏輯關係,如何儲存資料元素之間的邏輯關係,是實現物理結構的重點和難點。

7.資料元素的儲存結構形式有兩種:順序儲存和鏈式儲存。順序儲存結構:是把資料元素存放在位址連續的儲存單元裡,其資料間的邏輯關係和物理關係是一致的。鏈式儲存結構:是把資料元素存放在任意的儲存單元裡, 資料元素的儲存關係並不能反映其邏輯關係,因此需要用乙個指標存放資料元素的位址。

8.邏輯結構是面向問題的,而物理結構就是面向計算機的,其基本的目標就是將資料及其邏輯關係儲存到計算機的記憶體中。

9.資料型別就用來說明變數或表示式的取值範圍和所能進行的操作。

10.抽象資料型別 (abstract data type, adt) : 是指乙個數學模型及定義在該模型上的一組操作。

第二章

1.演算法具有五個基本特性: 輸入、輸出、 有窮性、確定性和可行性。

2.確定性:演算法的每一步驟都具有確定的含義, 不會出現二義性。 演算法在一定條件下,只有一條執行路徑,相同的輸入只能有唯一的輸出結果。

3.好的演算法,應該具有正確性、 可讀性、健壯性、 高效率和低儲存量的特徵。

4.乙個程式的執行時間,依賴於演算法的好壞和問題的輸入規模。

5.用大寫 o( )來體現演算法時間複雜度的記法,我們稱之為大o記法。一般情況下,隨著 n 的增大, t(n)增長最慢的演算法為最優演算法。

6.要分析演算法的複雜度,關鍵就是要分析迴圈結構的運**況。

7.常用的時間複雜度所耗費的時間從小到大依次是: o(1) < o(logn) < o(n) < o(nlogn) < o(n2)  < o(n3)  < o(2" ) < o(n!) < o(n")

8.通常, 除非特別指定, 我們提到的執行時間都是最壞情況的執行時間。一般在沒有特殊說明的情況下,都是指最壞時間複雜度。

第三章

1.可以用 c 語言的一維陣列來實現線性表的順序儲存結構。順序結構線性表的長度不能超過線性表的最大儲存長度。

2.陣列的長度是存放線性表的儲存空間的長度,儲存分配後這個量是一般是不變的。線性表的長度是線性表中資料元素的個數,隨著線性表插入和刪除操作的進行,這個量是變化的。由於線位表中可以進行插入和刪除操作,因此分配的陣列空間要大於等於當前線性表的長度。

3.線性表的第 i 個元素是要儲存在陣列下標為 i-1 的位置。

4.假設,每個資料元素佔據c個儲存單元,對於第 i 個資料元素 ai,的儲存位置可以由 a1 推算得出:

loc(ai)= loc(a1 ) + (i-1)*c 。

5.對每個線性表位置的存入或者取出資料, 對計算機來說都是相等的時間, 也就是乙個常數,訪問時間效能為 o(1),我們通常把具有這一特點的儲存結構稱為隨機訪問結構。

6.線性表的順序儲存結構,在存、 讀資料時,不管是哪個位置,時間複雜度都是 o(1) ; 而插入或刪除時,時間複雜度都是 o(n) 。

7.對於插入或刪除資料越頻繁的操作,單鏈衰的效率優勢就越是明顯。

第六章樹

1.當樹非空時,根節點是唯一的

2.乙個節點的子樹的個數沒有限制,但自述一定是互不相交的,即每乙個孩子只能由乙個雙親

3.結點擁有的子樹數稱為結點的度 (degree) 。度為 0 的結點稱為葉結點(leaf) 或終端結點;度不為 0 的結點

稱為非終端結點或分支結點。 除根結點之外,分支結點也稱為內部結點。樹的度是樹內各結點的度的最大值。

4.結點的層次(level)從根開始定義起,根為第一層, 根的孩子為第二層。樹中結點的最大層次稱為樹的深度 (depth)或高度

5.森林 ( forest) 是 m (m>0) 棵互不相交的樹的集合。對樹中每個結點而言,其子樹的集合即為森林。

6.我們又關注結點的雙親、 又關注結點的孩子、還關注結點的兄弟,而且對時間遍歷要求還比較高,那麼我們還可以把此結構擴充套件為有雙親域、長子域、 再有右兄弟域。

7.雙親表示法、孩子表示法、雙親孩子表示法、孩子兄弟表示法

大話資料結構筆記 查詢

查詢就是根據給定的某個值,在查詢表中確定乙個其關鍵字等於給定值的資料元素 或記錄 查詢表是由同一型別的資料元素 或記錄 構成的集合。關鍵字 key 是資料元素中某個資料項的值。若此關鍵字可以唯一的表示乙個記錄,則稱此關鍵字為主關鍵字 primary key 對於那些可以識別多個資料元素 或記錄 的關...

大話資料結構筆記1資料結構緒論

1 資料結構 是相互之間存在一種或多種特定關係的資料元素的集合 兩個前提 1 可以輸入到計算機中 2 能被電腦程式處理 3 資料元素 是組成資料的 有一定意義的基本單位,在計算機中通常作為整體處理,也被稱為記錄。4 資料項 乙個資料元素可以由若干個資料項組成,資料項是資料不可分割的最小單位。5 資料...

《大話資料結構》

函式的漸進增長 我們現在來判斷一下,兩個演算法a和b哪個更好。假設兩個演算法的輸入規模都是n,演算法a要做2n 3次操作,你可以理解為先有乙個n次的迴圈,執行完成後,再有乙個n次迴圈,最後有三次賦值或運算,共2n 3次操作。演算法b要做3n 1次操作,你覺得它們誰更快呢 準確來說,答案是不一定的 當...