《大話數據結構》學習筆記 —— 01 數據結構


一、基本概念



1. 數據結構 + 算法 = 程序

程序設計的實質是對確定問題選擇一種好的結構,加上設計一種好的算法。



2. 數據


定義

可描述客觀事物的符號,是計算機中可以操作的對象,是能被計算機識別,並輸入給計算機處理的符號集合。


特性

  • 可以輸入到計算機中。

  • 能夠被計算機程序處理。

對於整數、浮點數等數值型類型,可以直接進行數值計算。

對於字符數據,需要進行非數值的處理。譬如聲音、圖像、視頻數據可以先通過編碼手段變成字符數據,再進行處理。



3. 數據元素


定義

數據元素就是組成數據的、有一定意義的基本單位,在計算中通常作爲一個整體處理。也稱作記錄

譬如禽類數據,數據元素就是雞、鴨、魚、羊等。



4. 數據項


定義

一個數據元素可由若干個數據項組成,比如人這樣的數據元素可以有眼、鼻、口這樣的數據項。

數據項是數據不可分割的最小單位



5. 數據對象


定義

性質相同的數據元素的集合,是數據的子集。

性質相同指的是數據元素具有相同數量和類型的數據項,比如人都有性別、身高、體重等相同的數據項。



6. 數據結構


定義

結構,簡單理解就是關係

數據元素之間不是獨立的,而是存在特定關係的,這種關係稱之爲結構

數據結構:是相互之間存在一種或多種特定關係的數據元素的集合。






二、邏輯結構與物理結構

上文提到了數據元素之間存在着特定的關係,按照視點的不同,我們把數據結構分爲邏輯結構和物理結構。




1. 邏輯結構


定義

數據對象中數據元素之間的相互關係。


  1. 集合結構:數據元素間的關係是“屬於同一個集合”。

  2. 線性結構:數據元素之間存在着一對一的關係(如學生信息表) 。

  3. 樹形結構:數據元素之間存在着一對多的關係(如阻止架構、目錄系統) 。

  4. 圖形結構:數據元素之間存在着多對多的關係(如社會關係網、地圖) 。


總結

邏輯結構是針對具體問題的

是爲了解決某個問題,選擇了一種合適的數據結構來表示數據元素之間的邏輯關係。




2. 物理結構(存儲結構)


定義

數據的邏輯結構在計算機中的存儲形式,實際上就是如何把數據元素存儲到計算機的存儲器中。

數據的存儲結構,應正確反映數據元素之間的邏輯關係

物理結構有兩種形式:順序存儲結構鏈式存儲結構



順序存儲結構

把數據元素存放在地址連續的存儲單元裏,其數據間的邏輯關係和物理關係是一致的

說白了,就是大家按順序排隊站好,誰也別插隊。

然而,實際上總有人會插隊,也會有人要上廁所、有人會放棄排隊,於是便需要另一種物理結構了。



鏈式存儲結構

與順序存儲結構不同,鏈式存儲不需要大家按順序站好排隊。

先領一個號,等着叫號。期間去哪兒都沒關係,只要及時回來。需要關注的僅僅是前一個號有沒有被叫,前一個被叫,下一個就輪到自己了。

數據元素之間的物理位置不能反映其邏輯關係,指針字段來存放下一個數據元素所在的位置,用指針來反映數據元素之間的邏輯關係。


定義
把數據元素存放在任意的存儲單元中,這組存儲單元可以連續也可以不連續

數據元素之間的物理位置不能反映其邏輯關係指針字段來存放下一個數據元素所在的位置,用指針來反映數據元素之間的邏輯關係。


總結
邏輯結構是面向問題的,邏輯結構是面對計算機的,其基本目標就是將數據及其邏輯關係存儲到計算機的內存中。






三、數據類型


定義

指一組性質相同的值的集合及定義在此集合上的一些操作的總稱。

在高級編程語言中,每個常量、變量都有各自的取值範圍。

而類型,就是用來說明取值範圍和所能進行的操作。


分類

原子類型:不可再分解基本類型,包括整數型、字符串型、浮點型等。

結構類型:由若干個基本類型組合而成可以進行再分解。譬如整型數組是由若干整型數據組成的。


舉例

比如在C語言中聲明int a, b,

這就意味着在給變量a和變量b賦值時不能超出int的取值範圍

變量a和變量b之間的運算只能是int類型所允許的運算



抽象數據類型


定義

一個數學模型及定義在該模型上的一組操作

簡單來說:一個數據對象、數據對象中各數據元素之間的關係及對數據元素的操作。



舉例

各個計算機,不論是大型機、PC、平板,甚至是手機都擁有“整數”類型,也需要整數間的運算,那麼整型其實就是一個抽象數據類型

儘管它在上面所提到的機器中的實現方法上可能實現上不一樣,但由於其定義的數學特性相同,所以在編程人員看來它們都是相同的。

“抽象”的意義在於數據類型的數學抽象特性



一組操作

就好像“超級瑪麗”一樣,裏面的主角馬里奧有幾種基本操作:走(前進、後退、上、下)、跳、打子彈。








文中內容主要是對《大話數據結構》一書內容的摘抄,版權歸原作者----程傑所有。

如有侵權,請聯繫我進行刪除。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章