數據結構基本概念

寫在前面,本篇文章,你將瞭解到:
1.數據、數據元素、數據項、數據對象的概念及其之間的關係

2.數據結構的定義
3.邏輯結構:集合結構、線性結構、樹形結構、圖形結構
4.物理結構:順序存儲結構、鏈式存儲結構
5.數據類型,抽象數據類型的定義


1.基本概念

(1)數據

正所謂“巧婦難爲無米之炊”,計算機就是一口鍋,而數據就是其中的米,再強大的“鍋”,沒有“米”下鍋,也是一堆破銅爛鐵。
數據: 是描述客觀事物的符號,能被計算機識別,輸入給計算機處理的符號集合。
兩個前提:
①可以輸入到計算機中
②能被計算機程序處理


(2)數據元素

數據元素是組成數據的、有一定意義的基本單位。
例如:在人類中,人就是數據元素
在植物類中,樹,草等就是數據元素


(3)數據項

一個數據元素可以又若干個數據項組成
例如:人這樣的數據元素,可以有眼,耳,鼻,嘴,手,腳等這些數據項組成,也可以有姓名,年齡等
數據項是數據不可分割的最小單位

注:在數據結構中,我們定義數據項是最小單位,但是真正的問題中,數據元素纔是數據結構中建立數據模型的着眼點,就像我們在看電影的時候,討論電影肯定是討論電影角色的整體情況,而不會去討論這個角色的名字,年齡去做分析


(4)數據對象

性質相同 的數據元素的集合,是數據的子集
性質相同是指具有相同數量和類型的數據項,
例如:人都有姓名,生日,性別等相同的數據項


(5)數據結構

數據結構:字面意思就是數據的結構,假如我們把一個東西想象成一個分子,那數據結構其實就是這個分子的結構,也就是說數據結構就是組成分子的原子之間的排列方式。
官方點的定義:數據結構就是相互之間存在一種或多種特定關係的數據元素的集合


(6)邏輯結構

邏輯結構:指的是數據對象中數據元素之間的相互關係
1.集合結構
集合結構中的數據元素除了同屬於一個集合外,沒有其他關係,各個元素都是平等的,它們的共同屬性是“同屬於一個集合”,如下圖
在這裏插入圖片描述

2.線性結構
數據元素是一對一的關係,如下圖
在這裏插入圖片描述
3.樹形結構

樹形結構中,數據元素之間存在一對多的層次關係
在這裏插入圖片描述

4.圖形結構

圖形結構的數據元素是多對多的關係
在這裏插入圖片描述


(7)物理結構

物理結構,是指數據的邏輯結構在計算機中的存儲形式,有的地方也叫存儲結構

數據是數據元素的集合,物理結構實際上就是指如何把數據元素存儲到計算機的存儲器中,主要是針對內存而言,其他的像硬盤,U盤這種存儲器通常都是用文件結構來描述

數據元素的存儲結構形式有兩種:順序存儲和鏈式存儲

1.順序存儲
順序存儲結構:把數據元素存放在地址連續的存儲單元裏,數據間的邏輯關係和物理關係是一致的
在這裏插入圖片描述
說的簡單點,這種存儲結構就是排隊佔位,按順序排好,每個人都佔一定的空間,誰也別插隊

例如:當我們定義一個 int a[9] 的數組的時候,內存中就會給我們找一個空地,然後按照int的大小乘以9,開闢一段連續的空間,第一個數組數據在第一個位置,第二個就在第二個位置


2.鏈式存儲結構

畢竟每個人不一樣,不可能每個人都遵守排隊的次序,總有人想插隊或者排隊的人中途上廁所,就會離開自己的位子,那這個隊伍中就可能隨時都可以添加新的成員,也可以隨時去掉一個老成員。當有這種情況的時候,我們的銀行、醫院等地方,就設置了一個排號系統,就是每個人先領號,叫到號了就輪到你了,沒有叫到的時候,哪涼快哪呆着,去幹啥都沒問題

鏈式存儲結構:就是把數據元素放在任意的存儲單元裏,這組單元可以是連續的,也可以是不連續的。因此需要用一個指針存放數據元素的地址,這樣通過地址就可以找到相關聯的數據元素的位置。

當我們用叫號系統在排隊的時候,號碼就是索引,通過號碼去找尋對應的人辦理業務,我們的人可以在辦事大廳裏隨意走動。

顯然,鏈式存儲就靈活多了,數據存在哪不重要,只要一個指針就知道存放在哪。

但是鏈式結構也有自己的不足之處,當我們其中的某一個不見了,那我們的鏈就斷了,就像自行車的鏈條,少了任意一段鏈條就斷了,得把斷掉之後的兩端重新再接起來

總結:邏輯結構是面向問題的,物理結構是面向計算機的,目的就是將數據及其邏輯關係存儲到計算機的內存中


(8)數據類型

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

數據類型是按照值的不同進行劃分,每個變量、 常量和表達式都是自己的取值範圍。

例如:我們每個人都需要住房子,當然也可以選擇住天橋,總歸會有個住的地方。顯然,當我們沒有錢的時候,買不起房子,於是開發商便推出各種房型,別墅,單間,公寓等,面積有大有小,滿足不同人的需求。。。同樣的,在計算機中,內存空間有限,我們在計算一些整型數字的加減乘除的運算時,不需要去開闢一個適合小數計算的空間,物盡其用就好。於是數據類型就出現了,對數據進行分類。
1.原子類型: 不可以再分解的基本類型,包括整型,字符型等
2.結構類型: 由若干個類型組合而成,是可以再分解的。例如整型數組,由若干個整型數據組合而成


(9)抽象數據類型

抽象的定義:抽取事物具有普遍性的本質,抽出問題的特徵而忽略非本質的細節,是對事物的一個概括。
抽象是一種思考問題的方式,只保留了實現目標所必須的信息

抽象數據類型:指一個數學模型及定在該模型上的一組操作
例如:各個計算機,不管是大型機,小型機,PC,平板電腦,甚至是智能手機,都有自己的整數操作,也有相對應的加減乘除的運算,那麼整數其實就是一個抽象數據類型,儘管這些加減乘除運算在各自的機器上實現的方法可能不一樣,但是其數學特性是相同的,都是對這些整數進行操作處理,抽象出來以後,它們都是相同的。

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