計算機解決問題:
1.從具體問題抽象出適當的數學模型。
2.設計乙個解此數學模型的演算法。
3.編出程式,進行測試,調整直至得到最終解答。
什麼是資料結構:
計算操作的物件,以及這些被操作的物件之間的關係。
基本概念和術語:
1.資料(data):對客觀事物的符號表示,在電腦科學中是指所有能輸入到計算機中並被電腦程式處理的符號的總稱。
2.資料元素(data element):資料的基本單位,在電腦程式中通常作為乙個整體進行考慮和處理。
3.資料項(data item):乙個資料元素可由若干個資料項組成。資料項是資料元素的不可分割的最小單位。
4.資料物件(data object):性質相同的資料元素的集合,是資料的乙個子集。
5.資料結構(data structure):相互之間存在一種或多種特定關係的資料元素的集合。資料結構的4類基本結構(集合,線性結構,樹形結構,圖狀(網狀)結構)。
集合:資料元素屬於同一集合外,無其他關係。(就是在一起)
線性結構:資料元素之間存在乙個對乙個對關係。(1:1)
樹形結構:資料元素之間存在乙個對多個對關係。(1:n)
圖狀結構:資料元素之間存在多個對多個對關係。(n:n)
邏輯結構:資料元素之間的邏輯關係。
物理結構(儲存結構) :資料結構在計算機中的表示(又稱映像)。
位(bit):計算機中表示資訊的最小單位是二進位制書的一位。
元素(element)或結點(node):用乙個由若干位組合起來形成的乙個位串表示乙個資料元素。
資料域(data field):資料元素有若干資料項組成時,位串中對應於各個資料項的子位串。
計算機中有兩種不同表示資料元素的方法:順序映像和非順序映像。因此得到兩種儲存結構:順序儲存結構和鏈式儲存結構。
此書講解的儲存結構是資料結構在c虛擬處理器中的表示,稱為虛擬儲存結構。
資料型別(data type): 乙個值的集合和定義在這個值集上的一組操作的總稱。例如:c語言中的整型變數,值集為莫哥區間,定義的操作為加減乘除等等。
資料型別:原子型別和結構型別。
抽象資料型別(abstract data type, adt):乙個數學模型以及定義在該模型的一組操作。
1.原子型別(atomic data type):變數的值不可分解。
2.固定聚合型別(fixed-aggregate data type):變數的值由確定資料的成分按某種結構組成。
3.可變聚合型別(variable-aggregate data type):與固定聚合型別比較,值的成分的數目不確定。
4.多形資料型別(polymorphic data type):值的成分不確定的資料型別。
演算法(algorithm):
有窮性、確定性、可行性、輸入、輸出
演算法設計要求
正確性、可讀性、健壯性、效率與低儲存量需求
演算法效率度量:
時間複雜度:t(n) = o(f(n))
暫時這麼記錄時間的比對:理解就好
1 < 對數 < n < n*對數 < n的平方 < n的冪 < n的指數
儲存空間需求:
空間複雜度:s(n) = o(f(n))
資料結構pintia 資料結構和演算法(一)概述
資料結構,用來描述資料間的關係 演算法,指解決某一特定問題的步驟 資料結構為演算法服務,演算法是特定問題下的解決辦法,故沒有通用性演算法,應具體問題具體分析 一 資料結構 以上為資料結構的邏輯結構,在計算機內部的物理儲存結構有 順序結構,鏈式結構 索引結構和雜湊結構。二 演算法 三 學習目標 資料結...
資料結構之查詢(一) 概論
查詢 searching 就是根據給定的某個值,在查詢表中確定乙個其關鍵字等於給定值得資料元素 或記錄 查詢表 search table 是由同乙個型別的資料元素 或記錄 構成的集合。關鍵字 key 是資料元素中某個資料項的值,又稱為鍵值,用它可以標識乙個資料元素。也可以標識乙個記錄的某個資料項 字...
資料結構之樹(一) 概論
如圖 對於樹的定義需要強調倆點 1.n 0時根結點是唯一的,不可能存在多個根結點。2.m 0時,子樹的個數沒有限制,但它們一定是互不相交的。結點擁有的子樹數稱為結點的度 degree 度為0的結點稱為葉結點 leaf 或終端結點 度不為0的結點稱為非終端結點或分支結點。除根節點之外,分支結點也稱為內...