它能夠被計算機識別、存儲和加工處理。它是計算機程序加工的原料,應用程序處理各種各樣的數據。計算機科學中,所謂數據就是計算機加工處理的對象,它可以是數值數據,也可以是非數值數據。數值數據是一些整數、實數或複數,主要用於工程計算、科學計算和商務處理等;非數值數據包括字符、文字、圖形、圖像、語音等。數據元素(DataElement)是數據的基本單位。在不同的條件下,數據元素又可稱為元素、結點、頂點、記錄等。例如,學生信息檢索係統中學生信息表中的一個記錄等,都被稱為一個數據元素。
有時,一個數據元素可由若乾個數據項(DataItem)組成,例如,學籍管理係統中學生信息表的每一個數據元素就是一個學生記錄。它包括學生的學號、姓名、性別、籍貫、出生年月、成績等數據項。這些數據項可以分為兩種:一種叫做初等項,如學生的性別、籍貫等,這些數據項是在數據處理時不能再分割的最小單位;另一種叫做組合項,如學生的成績,它可以再劃分為數學、物理、化學等更小的項。通常,在解決實際應用問題時是把每個學生記錄當作一個基本單位進行訪問和處理的。
數據對象(DataObject)或數據元素類(DataElementClass)是具有相同性質的數據元素的集合。在某個具體問題中,數據元素都具有相同的性質(元素值不一定相等),屬於同一數據對象(數據元素類),數據元素是數據元素類的一個實例。例如,在交通谘詢係統的交通網中,所有的頂點是一個數據元素類,頂點A和頂點B各自代表一個城市,是該數據元素類中的兩個實例,其數據元素的值分別為A和B。數據結構(DataStructure)是指互相之間存在著一種或多種關係的數據元素的集合。在任何問題中,數據元素之間都不會是孤立的,在它們之間都存在著這樣或那樣的關係,這種數據元素之間的關係稱為結構。根據數據元素間關係的不同特性,通常有下列四類基本的結構:
集合結構。該結構的數據元素間的關係是“屬於同一個集合”。
線性結構。該結構的數據元素之間存在著一對一的關係。
樹型結構。該結構的數據元素之間存在著一對多的關係。
圖形結構。該結構的數據元素之間存在著多對多的關係,也稱網狀結構。從上麵所介紹的數據結構的概念中可以知道,一個數據結構有兩個要素。一個是數據元素的集合,另一個是關係的集合。在形式上,數據結構通常可以采用一個二元組來表示。
數據結構的形式定義為:數據結構是一個二元組
Data_Structure=(D,R)
其中,D是數據元素的有限集,R是D上關係的有限集。線性結構的特點是數據元素之間是一種線性關係,數據元素“一個接一個的排列”。在一個線性表中數據元素的類型是相同的,或者說線性表是由同一類型的數據元素構成的線性結構。在實際問題中線性表的例子是很多的,如學生情況信息表是一個線性表:表中數據元素的類型為學生類型;一個字符串也是一個線性表:表中數據元素的類型為字符型,等等。
線性表是最簡單、最基本、也是最常用的一種線性結構。線性表是具有相同數據類型的n(n>=0)個數據元素的有限序列,通常記為:
(a1,a2,…ai-1,ai,ai+1,…an)
其中n為表長,n=0時稱為空表。它有兩種存儲方法:順序存儲和鏈式存儲,它的主要基本操作是插入、刪除和檢索等。
常用數據結構
數組(Array)
在程序設計中,為了處理方便,把具有相同類型的若乾變量按有序的形式組織起來。這些按序排列的同類數據元素的集合稱為數組。在C語言中,數組屬於構造數據類型。一個數組可以分解為多個數組元素,這些數組元素可以是基本數據類型或是構造類型。因此按數組元素的類型不同,數組又可分為數值數組、字符數組、指針數組、結構數組等各種類別。
棧(Stack)
是隻能在某一端插入和刪除的特殊線性表。它按照後進先出的原則存儲數據,先進入的數據被壓入棧底,最後的數據在棧頂,需要讀數據的時候從棧頂開始彈出數據(最後一個數據被第一個讀出來)。
隊列(Queue)
一種特殊的線性表,它隻允許在表的前端(front)進行刪除操作,而在表的後端(rear)進行插入操作。進行插入操作的端稱為隊尾,進行刪除操作的端稱為隊頭。隊列中沒有元素時,稱為空隊列。
鏈表(LinkedList)
是一種物理存儲單元上非連續、非順序的存儲結構,數據元素的邏輯順序是通過鏈表中的指針鏈接次序實現的。鏈表由一係列結點(鏈表中每一個元素稱為結點)組成,結點可以在運行時動態生成。每個結點包括兩個部分:一個是存儲數據元素的數據域,另一個是存儲下一個結點地址的指針域。
)eerT(樹
:件條下以足滿N,N係關個一了義定中K在且,K合集窮有的點結個)0>n(n含包是
。驅前個一有僅且有說來N係關於對,點結個每的中k,外0K除)2( 。)toor(根為稱簡。點結根的樹為0K稱,驅前有沒說來N係關於對他,0k點結個一有僅且有)1(
𝑤𝑡.𝑝𝑜𝑜於源來節章本
。)0=>m(繼後個m有以可說來N係關對,點結各中K)3(
)hparG(圖
。係關鄰相有具點頂個兩這示表就,邊條一在存間之點頂個兩若,對偶序有的點頂是邊,點頂為稱點結將常常中構結圖在,別區以加構結形樹與了為,中其。成組E合集的邊和V合集窮有的點結由是圖
)paeH(堆
。堆個一是也樹子個兩的點結根且,)大最或(小最值的點結根是點特的堆。堆叉二指是,構結據數的堆的說所們我常通。值個一有都點結個每,構結據數形樹的殊特種一是堆,中學科機算計在
)hsaH(表列散
不,此由。上置位儲存的)K(f在定必則,錄記的等相K和字鍵關在存中構結若