基本概念數組
數據:數據結構
描述客觀事物的數字,字符以及全部輸入到計算機中並能被計算機接收的各類符號集合統稱。是信息的符號表示,是計算機程序的處理對象。不只包括整型,實型等數值類型,還包括字符聲音圖像視頻等。spa
數據具有兩個條件:指針
1.能夠輸入到計算機中視頻
2.能被計算機程序處理對象
數據元素:接口
表示一組事物的一組數據被稱爲一個數組元素,是組成數據的,有必定意義的基本單位(原子性,不可分割,也能夠是多個數據項組成),在計算機中一般做爲總體處理,也被稱爲記錄。內存
如:人類中,人就是數據元素。學校裏,學生是數據元素數學
數據項:基礎
是數據元素中有獨立含義的,不可分割的最小標誌單位(一個整數,一個字符都是,人的耳鼻眼嘴,一個學生的姓名,年齡,學號)
數據項是最小單位。但真正討論問題時數據元素纔是數據結構中創建數據模型的着眼點。(看電影時,咱們討論電影角色的「數據元素」,而不是角色的姓名或年齡「數據項」去研究)。
數據對象:
性質相同的數據元素的集合,是數據的子集。
性質相同,是指數據元素具備相同數量和類型的數據項,好比人都有姓名,生日,性別等相同的數據項。
學生有學號,班級等相同的數據項,那麼學生和人就能被稱爲數據對象。
數據結構是 數據元素之間存在的關係。一個數據結構由N(N>=0)個數據元素組成。簡單的理解就是關係。好比分子結構,就是組成分子的原子之間的排列方式。嚴格的說 結構是指分各個組成部分相互搭配和排列的方式,在顯示世界中不一樣數據元素之間不是獨立的,而是存在特定的關係,咱們將這些關係稱爲結構。
數據結構:是相互之間存在一種或多種特定關係的數據元素的集合。數據元素是具備內在聯繫的數據集合。數據元素之間存在的一種或多種特定關係,也就是數據的組織形式。
數據元素之間的邏輯關係,用一個數據元素的集合和定義在此集合上的若干關係來表示,簡稱數據結構。
數據結構分爲邏輯結構和存儲結構
邏輯結構:數據對象中數據元素之間的相互關係。
邏輯結構分爲四種:
1.集合結構
集合結構中的數據元素除了同屬於一個集合之外,它們之間沒有任何其餘關係。各個數據元素是「平等的」,他們的共同屬性是同屬於一個集合。數據結構的集合關係就相似數學中的集合。
2.線性結構
線性結構中的數據元素之間的關係是一對一的。數據元素之間具備線性關係。
線性結構有惟一的首元素(第一個元素)
線性結構有惟一的尾元素(最後一個元素)
除首元素外,全部的元素都有惟一的「前驅」
除尾元素外,全部的元素都有惟一的「後繼」
數據元素之間存在「一對一」的關係
例如:數組A1,A2,A3,........An,首元素就是A1,尾元素就是An
3.樹形結構
樹形結構:樹形結構中的數據元素之間存在一種一對多的層次關係。如:二叉樹。
樹中的數據元素一般稱爲結點,樹結構的層次關係是指 根(最頂層)結點沒有前驅結點(父母結點),除根以外的其餘結點有且僅有一個父母結點。全部節點可能有零到多個後繼結點(孩子結點)
4.圖形結構
圖形結構: 數據元素是多對多的關係
每一個數據元素可能有多個前驅元素和後繼元素。
邏輯結構是針對具體問題的,是爲了解決某個問題,在對問題理解的基礎上,選擇一個合適的數據結構表示數據元素之間的邏輯關係。
物理結構(存儲結構)
存儲結構:是指數據的邏輯結構在計算機中的存儲形式。
數據是數據元素的集合,根據物理結構的定義實際上就是如何把數據元素存儲到計算機的存儲器中。主要針對內存而言的,像硬盤,軟盤,光盤等外部存儲器的數據組織一般用文件結構來描述。
數據的存儲結構應該正確的反應數據元素之間的邏輯關係。
存儲結構分爲兩種:順序存儲和鏈式存儲。
1.順序存儲結構
是把數據元素存放在地址連續的存儲單元中,數據的邏輯關係和存儲關係是一致的。即每一個元素與前驅及後繼元素的存儲位置相鄰。(如數組)。
2.鏈式存儲結構
鏈式存儲結構:是把數據元素存放在任意的存儲單元裏,這組存儲單元能夠是連續的,也能夠是不連續的。使用若干地址分散的存儲單元存儲數據元素,邏輯上相鄰的數據元素在物理位置上並不必定相鄰。採用指針記載前驅或後繼元素的存儲地址。用數據域和地址域組成的一個結點表示數據元素,經過地址域把相互直接關聯的結點連接起來,結點間的鏈接關係體現數據元素間的邏輯關係。
類型:具備相同邏輯意義的一組值的集合。
數據類型:
指一個類型和定義在這個類型上的操做集合。數據類型定義了數據的性質、取值範圍以及數據所能進行的各類操做。
數據類型是按照值的不一樣進行劃分的。
程序中的每一種數據都屬於一種數據類型,決定了數據的類型也就決定了數據的性質以及對數據記性的運算和操做。同時數據也受到類型的保護。
構造數據類型是使用已有的基本數據類型和已定義的構造數據類型按照必定的語法規則組織起來的較複雜的
基本數據類型(如byte short char int long double float boolean等)
構造數據類型:數組,類和接口
抽象數據類型
抽象數據類型是指一個數學模型及定義在該模型上的一組操做。
抽象數據類型的定義取決於它的一組邏輯特徵,而與其在計算機內部如何表示和實現無關。
數據抽象:
抽象數據類型和數據類型本質上是一個概念,都表現數據的抽象特徵,數據抽象是指定義和實現相分離,即將一個類型上的數據及操做的邏輯含義和具體實現分離。
在實際應用當中,必須實現這些抽象數據類型,才能使用它們。而實現這些抽象數據類型依賴於數據存儲結構。
參考:大話數據結構