程序 = 數據結構 + 算法
今天打算把數據結構重新系統的學習一遍。
1,數據結構的研究內容
實際問題 – 數學模型 – 分析問題 – 提取關係 – 數學語言描述
1.1數據
包括數值型數據和非數值型數據
1.2數據元素:指的是一個元組
數據的基本單位,在計算機程序中作爲一個整體考慮
例如 元素 記錄 結點 頂點
1.3數據項:指的是元組中的一個單獨項
構成數據元素的不可分割的最小單位
1.4數據對象
性質相同的數據元素的集合,可以使一個表。
·
1.5數據結構:數據元素相互之間的關係成爲結構
·
1.5.1數據元素之間的邏輯關係——邏輯結構
A第一種劃分方法
1,線性結構(線性表 棧 隊列 串)
有且僅有一個開始節點和一個終端節點,並且所有節點都最多有一個直接前驅和一個直接後繼
2,非線性結構(樹 圖)
一個接待你可能有多個直接前驅和直接後繼
B第二種劃分方式
四種基本邏輯結構:
1,集合結構:結構中的數據源數除了同屬於同一個集合的關係以外,沒有其他關係
2,線性結構:結構中的數據元素之間存在一對一的線性關係
3,樹形結構:結構中的數據元素之間存在一對多的層次關係
4,圖狀結構或網狀結構:結構中數據元素之間存在着多對多的任意關係
1.5.2物理結構(存儲結構)
1,順序存儲結構:
用連續存儲單元依次存儲數據元素,數據元素之間的邏輯關係由元素的存儲位置來表示,例如C語言的數組
2,鏈接存儲結構
用一組任意存儲單元存儲數據元素,數據元素之間的邏輯關係用指針來表示,例如C語言中用指針來實現鏈式存儲結構。
3,索引存儲結構
存儲節點信息的同時,還建立附加的索引表,例如手機通訊錄
4,散列存儲結構
根據結點的關鍵字直接計算出該結點的存儲地址
1.6存儲結構與邏輯結構的關係
存儲結構是邏輯關係的映像與元素本身映像
邏輯結構是數據結構的抽象,存儲結構是數據結構的實現