1. 程式人生 > >《資料結構教程(第四版)》讀書筆記-第一章 緒論

《資料結構教程(第四版)》讀書筆記-第一章 緒論

第一章 緒論

資料
資料元素是資料(集合)中的一個“個體”,是資料的基本單位。又稱為元素、結點、頂點、記錄等。
資料項是具有獨立含義的、組成資料元素的最小單位。稱為欄位、域。資料元素是資料項的集合。

程式=演算法+資料結構(邏輯結構和儲存(物理)結構)

邏輯結構的型別:
1. 線性結構,一對一關係,除了開始結點和終端結點外,其他節點有且僅有一個前驅結點和一個後繼結點。
2. 非線性結構,分為樹形結構(一對多)和圖形結構(多對多)。

資料邏輯結構的描述方式:
數學描述 B=(D,R)和圖形描述。

物理儲存結構的型別:
順序儲存:邏輯上相鄰的結點在物理位置上也相鄰。儲存區是一片連續的地址空間,儲存密度大,空間利用率高(節點間邏輯關係沒有額外佔用儲存空間)。在程式設計中可以由陣列

實現,每個元素的儲存地址是可以計算的(實現隨機訪問)。缺點是節點運算不方便,每次操作都要引起大量的節點移動。

鏈式儲存:每個節點至少包括一個指標域,用指標來體現邏輯關係,可以離散的儲存。儲存密度小,利用率低。優點:操作方便,只要改變指標即可,原來各節點在記憶體中的位置並不移動。缺點:結點不一定相鄰,不能隨機訪問。

索引儲存:建立附加的索引表,內含每一項稱為索引項,包含關鍵字和地址。關鍵字唯一標識一個節點,地址作為指向節點的指標。可以進行隨機訪問,操作結點時只需移動索引表中的指標地址。

雜湊(雜湊)儲存:根據結點值(採用某種公式)計算出儲存地址的影射方式。又稱“關鍵碼-地址轉換法”。結點離散。在排序和查詢資料時經常使用。與前三種不同,雜湊儲存只儲存結點資料,不儲存邏輯關係。一般只適合快速查詢和插入資料。

抽象資料型別(Abstract Data Type, ADT)

演算法:有窮性、確定性、可行性、輸入性、輸出性。演算法有窮性,但程式可能無窮迴圈。

演算法設計的目標:正確性、可讀性、健壯性、高效率與低儲存量需求。

演算法效率分析:演算法的執行時間=基本運算所需時間*基本運算執行的次數
時間複雜度:執行基本運算的次數。基本運算次數是問題規模n的某個函式。記作:T(n)=O(f(n))。一個程式時間複雜度是由程式中最複雜的部分組成。

  • 沒有迴圈,常數階,O(1)。
  • 一重迴圈,線性階,O(n).
  • 平方階O(n^2),立方階O(n^3),對數階。

空間複雜度:指一個演算法所需的輔助記憶體空間的大小 S(n),分為確定的空間(不依賴輸入資料的大小,常數C表示,忽略不計)和變化的空間(受n影響,遞迴程式需要額外的空間)。如果演算法沒有變化空間需求,即空間複雜度為零。