數(shù)據(jù)結(jié)構(gòu)的形式化定義及兩個構(gòu)成要素的含義_第1頁
數(shù)據(jù)結(jié)構(gòu)的形式化定義及兩個構(gòu)成要素的含義_第2頁
數(shù)據(jù)結(jié)構(gòu)的形式化定義及兩個構(gòu)成要素的含義_第3頁
數(shù)據(jù)結(jié)構(gòu)的形式化定義及兩個構(gòu)成要素的含義_第4頁
數(shù)據(jù)結(jié)構(gòu)的形式化定義及兩個構(gòu)成要素的含義_第5頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

數(shù)據(jù)結(jié)構(gòu)的形式化定義及兩個構(gòu)成要素的含義一、定義數(shù)據(jù)結(jié)構(gòu)的形式化定義:數(shù)據(jù)結(jié)構(gòu)是一個二元組Data_Structures=(D,S),其中,D是數(shù)據(jù)元素的有限集,S是D上關(guān)系的有限集。二、結(jié)構(gòu)含義數(shù)據(jù)結(jié)構(gòu)有兩個構(gòu)成要素:1.數(shù)據(jù)元素:是數(shù)據(jù)的基本單位,通常作為一個整體進(jìn)行考慮和處理。一個個數(shù)據(jù)元素可由若干個數(shù)據(jù)項組成,數(shù)據(jù)項是構(gòu)成數(shù)據(jù)元素的不可分割的最小單位。2.數(shù)據(jù)項和數(shù)據(jù)元素的關(guān)系:數(shù)據(jù)結(jié)構(gòu)中數(shù)據(jù)元素之間存在一種或多種特定關(guān)系,這些關(guān)系可以通過數(shù)據(jù)項來體現(xiàn)。例如,線性結(jié)構(gòu)中,數(shù)據(jù)元素之間的關(guān)系是一條直線上的前后順序關(guān)系;樹形結(jié)構(gòu)中,數(shù)據(jù)元素之間的關(guān)系是一種層次關(guān)系,根節(jié)點在最上面,葉子節(jié)點在下面;圖狀結(jié)構(gòu)中,數(shù)據(jù)元素之間的關(guān)系是一種網(wǎng)狀關(guān)系,節(jié)點之間可以有多條路徑相連。以上內(nèi)容僅供參考,建議查閱關(guān)于數(shù)據(jù)結(jié)構(gòu)的文獻(xiàn)、資料獲取更全面的信息。三、擴(kuò)展知識數(shù)據(jù)結(jié)構(gòu)有這么幾個比較重要的概念:1.數(shù)據(jù)數(shù)據(jù)是信息的載體,是描述客觀事物屬性的數(shù)、字符及所有能輸入到計算機中并被計算機程序識別和處理的符號的集合。數(shù)據(jù)是計算機程序加工的原料。<數(shù)據(jù)>的概念比較抽象和泛泛的。2.數(shù)據(jù)元素數(shù)據(jù)元素是數(shù)據(jù)的基本單位,通常作為一個整體進(jìn)行考慮和處理。<數(shù)據(jù)元素>是一個很具體的概念。比如說你有很多筆,「筆」這個概念可以稱為<數(shù)據(jù)對象>,而你的每一只筆都是一個具體的<數(shù)據(jù)元素>。3.數(shù)據(jù)項一個數(shù)據(jù)元素可由若干數(shù)據(jù)項組成,數(shù)據(jù)項是構(gòu)成數(shù)據(jù)元素的不可分割的最小單位。一般在研究某個數(shù)據(jù)結(jié)構(gòu)時,我們只研究到數(shù)據(jù)項。4.數(shù)據(jù)對象數(shù)據(jù)對象是具有相同性質(zhì)的數(shù)據(jù)元素的集合,是數(shù)據(jù)的一個子集。<數(shù)據(jù)>是一個抽象的概念,<數(shù)據(jù)對象>也是較為抽象的概念。萬「物」皆可為<數(shù)據(jù)>,但是數(shù)據(jù)對象只是將其中性質(zhì)相同的「物」,范圍較元素集中。5.數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)是相互之間存在一種或多種特定關(guān)系的數(shù)據(jù)元素的集合。數(shù)據(jù)結(jié)構(gòu)三要素PS.個人理解:<數(shù)據(jù)結(jié)構(gòu)>的概念比較難以理解,在我看來<數(shù)據(jù)結(jié)構(gòu)>是<數(shù)據(jù)對象>的具體實現(xiàn)。此外,<數(shù)據(jù)結(jié)構(gòu)>還涉及到<數(shù)據(jù)類型>的概念。數(shù)據(jù)對象、數(shù)據(jù)元素、數(shù)據(jù)結(jié)構(gòu)與數(shù)據(jù)類型的相互關(guān)系6.數(shù)據(jù)類型數(shù)據(jù)類型是一個值的集合和定義在此集合上的一組操作的總稱。數(shù)據(jù)類型是和數(shù)據(jù)結(jié)構(gòu)密切相關(guān)的一個概念,它最早出現(xiàn)在高級語言程序中,用以刻畫(程序)操作對象的特性。(《數(shù)據(jù)結(jié)構(gòu)——嚴(yán)蔚敏》)按照“值”的不同特性,高級語言中的數(shù)據(jù)類型可分為兩類(以C語言為例):a.原子類型。其值不可再分的數(shù)據(jù)類型。如int類型,其范圍為-2147483648~2147483647,可進(jìn)行的操作有加減乘除....b.結(jié)構(gòu)類型。其值可以再分解為若干成分(分量)的數(shù)據(jù)類型。c語言中可以使用struct來定義結(jié)構(gòu)類型。//定義一個person類structperson{intage;char*name;};//結(jié)構(gòu)類型的值是由若干個成分按照某種結(jié)構(gòu)組成的,這些成分可以是結(jié)構(gòu)的,也可以是原子的。PS.個人理解,如果一個元素為結(jié)構(gòu)類型,那么該結(jié)構(gòu)類型的各個組成成分即為該元素的元素項,如:在該人員信息表中:可以將整個數(shù)據(jù)表看成一種數(shù)據(jù)類型,稱為表格類型;把表格的每一行(除第一行)看做一個數(shù)據(jù)類型,稱為人員信息類型;把每個人員細(xì)分信息各看成不同類型,那么有序號類型(int)、姓名類型(char*)、生日類型(structDate)、性別類型(enumgender)。第一點,可以看出表格類型是用人員信息類型以某種數(shù)據(jù)結(jié)構(gòu)實現(xiàn)的,也就是說每個表格類型元素都是由若干個人員信息類型的元素構(gòu)成,但不能說表格類型就是人員信息類型的<數(shù)據(jù)對象>,只能說表格類型使用了人員信息類型的<數(shù)據(jù)對象>。第二點,可以將人員信息看成一個數(shù)據(jù)對象(表格類型使用了該對象,人員信息類型是該對象的具體實現(xiàn)),那每個人員信息元素都由序號、姓名、生日、姓名這四個數(shù)據(jù)項構(gòu)成,這個四個數(shù)據(jù)項有的是原子類型的,有的是結(jié)構(gòu)類型的。第三點,每個數(shù)據(jù)元素可以包含一個或多個數(shù)據(jù)項,一個表格元素的數(shù)據(jù)元素中只包含人員信息一個類型的數(shù)據(jù)項,而在人員信息元素中包含四個數(shù)據(jù)項,在下列代碼中,日期類型(的數(shù)據(jù)元素)又包含年月日三個數(shù)據(jù)項。//定義一個人員信息表格類型typedefstructtable{Person*p;}Table;//定義一個人員信息類型typedefstructperson{intid;//數(shù)據(jù)項:int類型char*name;//數(shù)據(jù)項:char*類型Date*birthday;//數(shù)據(jù)項:自定義struct類型enumgender_gender;//數(shù)據(jù)項:枚舉類型}Person;//定義日期類型typedefstructdate{intyear;intmonth;intday;}Date;//定義性別枚舉enumgender{male=0,female=1};綜上可知,<數(shù)據(jù)、數(shù)據(jù)對象、數(shù)據(jù)元素、數(shù)據(jù)項>是數(shù)據(jù)系統(tǒng)中的干,<數(shù)據(jù)類型、數(shù)據(jù)類型>是數(shù)據(jù)系統(tǒng)中的枝,可以通過<數(shù)據(jù)類型、數(shù)據(jù)類型>來豐富<數(shù)據(jù)對象>,進(jìn)而豐富整個數(shù)據(jù)系統(tǒng)。(自己瞎總結(jié)的)7.抽象數(shù)據(jù)類型抽象數(shù)據(jù)類型(AbstractDataType,ADT)是抽象數(shù)據(jù)組織及與之相關(guān)的操作。抽象數(shù)據(jù)類型(ADT,AbstractDataType)是指一個數(shù)學(xué)模型以及定義在此數(shù)學(xué)模型上的一組操作。它通常是對數(shù)據(jù)的某種抽象,定義了數(shù)據(jù)的取值范圍及其結(jié)構(gòu)形式,以及對數(shù)據(jù)操作的集合?!俣劝倏啤?shù)據(jù)類型是個具體的概念,如JAVA語言中的int類型,就是一個實際的數(shù)據(jù)類型,C++又是另一個;而ADT是個抽象的概念,ADT用數(shù)學(xué)化的語言定義數(shù)據(jù)的邏輯結(jié)構(gòu)、定義運算。與具體的實現(xiàn)無關(guān)。四、小結(jié)以上七個概念中:數(shù)據(jù)、數(shù)據(jù)對象、數(shù)據(jù)元素、數(shù)據(jù)項比較好理解,剩下三個:數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)類型、抽象數(shù)據(jù)類型比較難理解,其中:1.數(shù)據(jù)結(jié)構(gòu)是存在一種或多種關(guān)系的數(shù)據(jù)集合,在數(shù)據(jù)對象上多了一層數(shù)據(jù)關(guān)系的概念,數(shù)據(jù)關(guān)系引出后面邏輯結(jié)構(gòu)、物理結(jié)構(gòu)和運算的概念;2.數(shù)據(jù)類型是是一個值的集合和定義在此集合上的一組操作的總稱。數(shù)據(jù)類型與數(shù)據(jù)結(jié)構(gòu)關(guān)系密切,數(shù)據(jù)類型在高級語言中起到描述的數(shù)據(jù)對象作用,數(shù)據(jù)結(jié)構(gòu)在高級語言中的具體實現(xiàn)離不開該語言中的數(shù)據(jù)類型。3.一個新的數(shù)據(jù)類型需要借用已有的數(shù)據(jù)類型(數(shù)據(jù)對象)以及數(shù)據(jù)結(jié)構(gòu)來實現(xiàn),但是數(shù)據(jù)類型與具體環(huán)境緊密相關(guān),同類的類型在不同的環(huán)境下其性質(zhì)、操作或多或少存在差異性。如int類型,即便是在C++中,不同的操作系統(tǒng),其int類型大小都不太一樣(在64位下為8個字節(jié),在32位下為4個字節(jié),某些環(huán)境下為2個字節(jié)),java中int為4個字節(jié)。因此,我們可以不考慮具體環(huán)境,只考慮數(shù)據(jù)結(jié)構(gòu)與數(shù)據(jù)對象,從數(shù)據(jù)類型中抽象出ADT概念來。之前簡單的學(xué)習(xí)過C++和

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論