數據結構的形式化定義及兩個構成要素的含義_第1頁
數據結構的形式化定義及兩個構成要素的含義_第2頁
數據結構的形式化定義及兩個構成要素的含義_第3頁
數據結構的形式化定義及兩個構成要素的含義_第4頁
數據結構的形式化定義及兩個構成要素的含義_第5頁
全文預覽已結束

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

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

溫馨提示

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

評論

0/150

提交評論