數(shù)據(jù)(Data)是信息的載體,它能夠被計算機識別、存儲和加工處理。它是計算機程序加工的原料,應用程序處理各種各樣的數(shù)據(jù)。計算機科學中,所謂數(shù)據(jù)就是計算機加工處理的對象,它可以是數(shù)值數(shù)據(jù),也可以是非數(shù)值數(shù)據(jù)。數(shù)值數(shù)據(jù)是一些整數(shù)、實數(shù)或復數(shù),主要用于工程計算、科學計算和商務處理等;非數(shù)值數(shù)據(jù)包括字符、文字、圖形、圖像、語音等。
數(shù)據(jù)元素(Data Element)是數(shù)據(jù)的基本單位。在不同的條件下,數(shù)據(jù)元素又可稱為元素、結點、頂點、記錄等。例如,學生信息檢索系統(tǒng)中學生信息表中的一個記錄、八皇后問題中狀態(tài)樹的一個狀態(tài)、教學計劃編排問題中的一個頂點等,都被稱為一個數(shù)據(jù)元素。有時,一個數(shù)據(jù)元素可由若干個數(shù)據(jù)項(Data Item)組成,例如,學籍管理系統(tǒng)中學生信息表的每一個數(shù)據(jù)元素就是一個學生記錄。它包括學生的學號、姓名、性別、籍貫、出生年月、成績等數(shù)據(jù)項。
這些數(shù)據(jù)項可以分為兩種:一種叫做初等項,如學生的性別、籍貫等,這些數(shù)據(jù)項是在數(shù)據(jù)處理時不能再分割的最小單位;另一種叫做組合項,如學生的成績,它可以再劃分為數(shù)學、物理、化學等更小的項。通常,在解決實際應用問題時是把每個學生記錄當作一個基本單位進行訪問和處理的。
數(shù)據(jù)對象(Data Object)或數(shù)據(jù)元素類(Data Element Class)是具有相同性質(zhì)的數(shù)據(jù)元素的集合。在某個具體問題中,數(shù)據(jù)元素都具有相同的性質(zhì)(元素值不一定相等),屬于同一數(shù)據(jù)對象(數(shù)據(jù)元素類),數(shù)據(jù)元素是數(shù)據(jù)元素類的一個實例。例如,在交通咨詢系統(tǒng)的交通網(wǎng)中,所有的頂點是一個數(shù)據(jù)元素類,頂點A 和頂點B 各自代表一個城市,是該數(shù)據(jù)元素類中的兩個實例,其數(shù)據(jù)元素的值分別為A 和B。
數(shù)據(jù)結構(Data Structure)是指互相之間存在著一種或多種關系的數(shù)據(jù)元素的集合。在任何問題中,數(shù)據(jù)元素之間都不會是孤立的,在它們之間都存在著這樣或那樣的關系,這種數(shù)據(jù)元素之間的關系稱為結構。根據(jù)數(shù)據(jù)元素間關系的不同特性,通常有下列四類基本的結構:
集合結構。在集合結構中,數(shù)據(jù)元素間的關系是“屬于同一個集合”。集合是元素 關系極為松散的一種結構。
線性結構。該結構的數(shù)據(jù)元素之間存在著一對一的關系。
樹型結構。該結構的數(shù)據(jù)元素之間存在著一對多的關系。
圖形結構。該結構的數(shù)據(jù)元素之間存在著多對多的關系,圖形結構也稱作網(wǎng)狀結構。
圖1.4 為表示上述四類基本結構的示意圖。

由于集合是數(shù)據(jù)元素之間關系極為松散的一種結構,因此也可用其他結構來表示它。從上面所介紹的數(shù)據(jù)結構的概念中可以知道,一個數(shù)據(jù)結構有兩個要素。一個是數(shù)據(jù)元素的集合,另一個是關系的集合。在形式上,數(shù)據(jù)結構通??梢圆捎靡粋€二元組來表示。數(shù)據(jù)結構的形式定義為:數(shù)據(jù)結構是一個二元組
Data_Structure =(D,R)
其中,D 是數(shù)據(jù)元素的有限集,R 是D 上關系的有限集。
數(shù)據(jù)結構包括數(shù)據(jù)的邏輯結構和數(shù)據(jù)的物理結構。數(shù)據(jù)的邏輯結構可以看作是從具體問題抽象出來的數(shù)學模型,它與數(shù)據(jù)的存儲無關。我們研究數(shù)據(jù)結構的目的是為了在計算機中實現(xiàn)對它的操作,為此還需要研究如何在計算機中表示一個數(shù)據(jù)結構。數(shù)據(jù)結構在計算機中的標識(又稱映像)稱為數(shù)據(jù)的物理結構,或稱存儲結構。它所研究的是數(shù)據(jù)結構在計算機中的實現(xiàn)方法,包括數(shù)據(jù)結構中元素的表示及元素間關系的表示。
數(shù)據(jù)的存儲結構
順序存儲
鏈式存儲
順序存儲方法是把邏輯上相鄰的元素存儲在物理位置相鄰的存儲單元中,由此得到的存儲表示稱為順序存儲結構。順序存儲結構是一種最基本的存儲表示方法,通常借助于程序設計語言中的數(shù)組來實現(xiàn)。
鏈式存儲方法對邏輯上相鄰的元素不要求其物理位置相鄰,元素間的邏輯關系通過附設的指針字段來表示,由此得到的存儲表示稱為鏈式存儲結構,鏈式存儲結構通常借助于程序設計語言中的指針類型來實現(xiàn)。
除了通常采用的順序存儲方法和鏈式存儲方法外,有時為了查找的方便還采用索引存儲方法和散列存儲方法。