資料結構
是相互之間存在一種或多種特定關係的資料元素的集合
什麼是資料結構
資料結構是一門研究非數值計算的程式設計問題中的操作物件,以及官們之間的關係和操作等相關 問題的學科。
資料
資料:是描述客觀事物的符號,是計算機中可以操作的物件,是能被計算機識 別,並輸入給計算機處理的符號集合。
結構
簡單的理解就是關係。嚴格點說, 結構是指各個組成部分相互搭配和排列的方式。
邏輯結構與物理結構
按照視點的不同, 我們把資料結構分為邏輯結構和物理結構。
邏輯結構
邏輯結構:是指資料物件中資料元素之間的相互關係。
邏輯結構分為下列四種:
集合結構
集合結構:集合結構中的資料元素除了同屬於一個集合外,它們之間沒有其他關係。
各個資料元素是"平等'的,它們的共同屬性是"同屬於一個集合"。資料結構中 的集合關係就類似於數學中的集合
(如下圖所示)
複製程式碼
線性結構
2.線性結構:線性結構中的資料元素之間是一對一的關係 (如下圖所示)
樹形結構
3.樹形結構:樹形結構中的資料元素之間存在一種一對多的層次關係 (如下圖所示)
圖形結構
4.圖形結構:圖形結構的資料元素是多對多的關係 (如下圖所示)
我們在用示意圖表示資料的邏輯結構時,要注意兩點:
- 將每一個資料元素看做一個結點,用圈圈表示。
- 元素之闖的邏輯關係用結點之間的連線表示.如果這個關係是有方向的,那麼用帶箭頭的連續表示。
物理結構
物理結構 (很多書中也叫做儲存結構,只要在理解上把它們當一回事就可以了)。
物理結構:是指資料的邏輯結構在計算機中的儲存形式
資料是資料元素的集合,那麼根據物理結構的定義,實際上就是如何把資料元素 儲存到計算機的儲存器中。儲存器主要是針對記憶體而言的,像硬碟、軟盤、光碟等外 部存俯器的資料組織通常用檔案結構來描述。
資料的儲存結構應正確反映資料元素之間的邏輯關係,這才是最為關鍵的,如何 儲存資料元素之間的邏輯關係,是實現物理結構的重點和難點。
資料元素的儲存結構形式有兩種:順序儲存和鏈式儲存。
順序儲存結構
順序儲存結構:是把資料元素存放在地址連續的儲存單元裡,其資料間的邏輯關係和物理關係是一致的
鏈式儲存結構
鏈式儲存結構:是把資料元素存放在任意的儲存單元裡,這組儲存單元可以是連續的,也可以是不連續的。 資料元素的儲存關係並不能反映其邏輯關係,因此需要一個指標存放資料元素的地址,這樣通過地址就可以找到相關聯資料元素的位置 (如下圖所示)
顯然,鏈式儲存就靈活多了,資料存在哪裡不重要,只要有一個指標存放了相應 的地址就能找到白了。
邏輯結構是面向問題的,而物理結構就是面向計算機的,其基本的目標就是將數 據及其邏輯關係儲存到計算機的記憶體中。
抽象資料型別
資料型別
資料型別:是指一組性質相同的值的集合及定義在此集合上的一些操作的總稱。
資料型別是按照值的不同進行劃分的。在高階語言中,每個變盤、常量和表示式 都有各自的取值範圍。型別就用來說明變數或表示式的取值範圍和所能進行的操作。
抽象是指抽取出事物具有的普遍性的本質。它是抽出問題的特徵而忽略非本質的細節,是對具體事物的一個概括。抽象是一種思考問題的方式,它隱藏了繁雜的細節,只保留實現目標所必需的資訊。
抽象資料型別
我們對已有的資料型別進行抽象,就有了抽象資料型別。
抽象資料型別 (Abstract Dataη肘, ADT) : 是指一個數學模型及定義在該模型上的一組操作。抽象資料型別的定義僅取決於它的一組邏輯特性,而與其在計算機內部如何表示和實現無關。
"抽象"的 意義在於資料型別的數學抽象特性。
抽象資料型別體現了程式設計中問題分解、抽象和資訊隱藏的特性。抽象資料型別把實際生活中的問題分解為多個規模小且窯易處理的問題, 然後建立一個計算機能處理的資料模型,並把每個功能模組的實現細節作為一個獨立的單元,從而使具體實現過程隱藏起來。
為了便於在之後的講解中對抽象資料型別進行規範的描述,我仍給出了描述抽象 資料型別的標準格式:
ADT 抽象資料型別名
Data
資料元素之間逗得關係的定義
Operation
操作 1
初始條件
操作結來描述
操作 2
....
操作 n
....
endADT
複製程式碼
參考:大話資料結構
感謝你花時間讀到結尾!:D
後端一枚,默默搬磚擼程式碼,如果覺得不錯歡迎關注我的公眾號