數據結構-數據(Data)


數據(Data)

定義

能輸入計算機且能被計算機處理的各種符號的集合

特征

信息的載體;

對客觀事物符號化的表示;

能夠被計算機識別、存儲和加工。

包括

數值型的數據

整數、實數等。

非數值型的數據

文字、圖像、圖形、聲音等。

個人理解

就是把具體的事物抽象化,用某種符號來代表這一類事物,如“人類”代表人所有人。

數據元素(Data element)

定義

數據的基本單位,一個數據元素可由若干個數據項(Data Item)組成。

簡稱

元素、記錄、結點或頂點。

個人理解

組成數據的屬性性的集合,如“人類”這個數據中的“人”代表單個人,“人”就是“人類”中的數據元素。

數據項(Data Item)

定義

構成數據元素的不可分割的最小單位

關系

數據 > 數據元素 > 數據項

個人理解

“人”這個數據元素又可分為“頭、軀干、四肢”三個屬性,每個屬性就是一個數據項,由這些數據項組成數據元素,再由這些數據元素組成數據。

數據對象(Data Object)

定義

性質相同的數據元素的集合,是數據的一個子集。

個人理解

“人”這個數據元素,可划分為“亞洲人”、“歐洲人”、“美洲人”、“非洲人”、“大洋洲人”,這些就是數據對象,數據對象就是數據的子集。

數據結構(Data Structure)

定義

數據元素之間的關系稱為結構,是指相互之間存在一種或多種特定關系的數據元素集合,是帶結構的數據元素的集合。

內容

  1. 數據元素之間的邏輯關系,邏輯結構
  2. 數據元素及其關系再計算機內存中的表示(映像),物理結構存儲結構
  3. 數據的運算實現,即對其的操作及存儲結構上的實現

邏輯結構

數據元素之間的邏輯關系,與存儲無關。

個人理解

”人“與”人“之間的關系。

划分邏輯結構一

線性結構
定義

有且僅有一個開始和一個終端結點,並且所有結點都最多只有一個直接前趨和一個直接后續。

包括

線性表、棧、隊列、串。

個人理解

如同排隊一樣,只有前一個和后一個,在只有一個隊列時,如果有左右的話,那排的也太難受了。

非線性結構
定義

一個結點可能有多個直接前趨和直接后續。

包括

樹、圖

個人理解

如同人際關系網一樣。

划分邏輯結構二

集合結構
定義

結構中的數據元素之間除了同屬於一個集合的關系外,無任何其它關系。

線性結構
定義

結構中的數據元素之間存在着一對一的線性關系。

樹形結構
定義

結構中的數據元素之間存在着一對多的層次關系。

圖狀結構
定義

結構中的數據元素之間存在着多對多的任意關系。

物理結構存儲結構

數據元素及其關系再計算機存儲器中的結構(存儲方式)。

個人理解

”人“是如何存在於現實世界中的,"人"的本質其實就是碳基生命,”人“存在於現實世界的物理結構為碳基結構。

分類

順序存儲結構
定義

用一組連續的存儲單元依次存儲數據元素,數據元素之間的邏輯關系由元素的存儲位置來表示。

舉例

數組

鏈式存儲結構
定義

用一組任意的存儲單元存儲數據元素,數據元素之間的邏輯關系用指針來表示。

舉例

鏈表

索引存儲結構
定義

在存儲結點信息的同時,建立附加的索引表

索引表中的每一項被稱為索引項

索引項的形式為:(關鍵字,地址)

關鍵字是唯一標識一個結點的數據項。

如果每個結點在索引表中都有索引項,則稱為稠密索引

如果一組結點在索引表中只有一個索引項,則稱為稀疏索引

個人理解

索引存儲結構,就像是把鏈表的地址用一個標識符標識,鍵值對存儲方式。

稠密索引就是把一條鏈表中每一個鏈表都用索引表的方式存儲,而稀疏索引是把一條鏈表中的頭鏈表用索引表的方式存儲,因為只要獲得了鏈表的頭鏈表,就等於獲得了這一條鏈表。

散列存儲結構
定義

根據結點的關鍵字直接計算出該結點的存儲地址。

邏輯結構存儲結構的關系

存儲結構是邏輯結構的映像與元素本身的映像;

邏輯結構是數據結構的抽象,存儲結構是數據結構的實現;

兩者代表數據元素之間的結構關系。

數據類型(Data Type)

定義

是一組性質相同的值的集合以及定義於這個值集合上的一組操作的總稱。

作用

  • 約束變量或常量的取值范圍
  • 約束變量或常量的操作

抽象數據類型(Abstract Data Type)

定義

指一個數學模型以及定義在此數學模型上的一組操作。

  • 由用戶定義,從問題抽象出數據模型(邏輯結構)
  • 還包括定義在數據模型上的一組抽象運算(相關操作)
  • 不考慮具體存儲結構、實現算法。

形式定義

抽象數據類型可用(D,S,P)三元組表示。

D:數據對象;

S:D上的關系集;

P:對D的基本操作集。

定義格式

ADT 抽象數據類型名{

數據對象:<數據對象的定義>

數據關系:<數據關系的定義>

基本操作:<基本操作的定義>

}ADT 抽象數據類型名

注:數據對象與數據關系用偽碼描述。

基本操作定義格式說明:

  • 參數表

    • 賦值參數:只為操作提供輸入值。如:求冪運算,這樣定義power(x,y)。
    • 引用參數:以&開頭,除提供輸入值外,還返回操作結果。如:power(&x,y),當函數運行完后將結果返回賦值給x。
  • 初始條件

    描述操作執行之前數據結構和參數應滿足的條件,若不滿足,則操作失敗,並返回相應出錯信息。若初始條件為空,則省略。

  • 操作結果

    說明操作正常完成之后,數據結構的變化狀況和應返回的結果。

標准格式
ADT 抽象數據類型名{
	Data
        數據對象的定義
        數據元素之間邏輯關系的定義
    Operation
        操作1
        	初始條件
        	操作結果描述
        操作2
        	...
        操作n
        	...
}ADT 抽象數據類型名
舉例

Circle的定義

ADT Circle{
    數據對象:D={r,x,y|r,x,y均為實數}
    數據關系:R={<r,x,y>|r,是半徑,<x,y>是圓心坐標}
    基本操作:
        Circle(&C,r,x,y)
        	操作結果:構造一個圓。
        double Area(C)
        	初始條件:園已存在。
        	操作結果:計算面積。
        double Circumference(C)
        	初始條件:圓已存在。
        	操作結果:計算周長。
}ADT Circle

個人理解

將具體事物特征提煉出來,就是抽象化,如“人”,特征就是頭、軀干、四肢。

總結

總結


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM