資料型別和抽象資料型別
本篇文章將講解資料結構的基本概念和術語,這種概念性的東西往往是催人入睡的,當然了,沒有誰能把概念講出花來,概念就是枯燥的。
由於專欄的體系,我有必要講一講關於資料結構的基本概念和術語。
資料是指能輸入計算機且能被計算機處理的各種符號的集合。
資料是資訊的載體,是對客觀事物符號化的表示,能夠被計算機識別、儲存和加工。
資料通常分為兩類:
資料型:整數、實數等
非數值型:文字、影象、聲音等
資料元素是資料的基本單位,在電腦程式中通常作為乙個整體進行考慮和處理。比如下面的一張學生表:
學號姓名
性別身份證號
001張三
男123456789123456781
002李四
男123456789123456782
003王五
女123456789123456783
其中的某個學生的資訊就為乙個資料元素,乙個學生的所有資訊,包括學號、姓名、性別、身份證號等通常會作為乙個整體處理。
資料項是構成資料元素的不可分割的最小單位,還是上面的學生表,對於乙個資料元素來說,比如學號為002的學生李四,該條資料元素由四個資料項組成,分別是:學號、姓名、性別和身份證號。
資料物件是性質相同的資料元素的集合,是資料的乙個子集。
例如整數集合,該集合中的所有元素都為整數,所以可以稱其為整數資料物件。
又例如字元集合,該集合中的所有元素都為字元,所以可以稱其為字元資料物件。
資料元素不是孤立存在的,它們之間存在著某種關係,資料元素之間的關係稱為結構。
資料結構包括以下三個方面的內容:
資料元素之間的邏輯關係,也稱為邏輯結構
資料元素及其關係在計算機記憶體中的表示,稱為資料的物理結構或資料的儲存結構
資料的運算和實現,即對資料元素可以施加的操作以及這些操作在相應的儲存結構上的實現
下面就來說一說邏輯結構和物理結構的概念。
邏輯結構:
物理結構:
它們的關係是:儲存結構是邏輯關係的映像與元素本身的映像。
對於邏輯結構,我們通過是否為線性可將其分為線性結構和非線性結構。
我們還可以通過資料元素之間關係的不同特性,將其分為集合、線性結構、樹形結構和圖狀結構。
對於儲存結構,我們通常將其分為四類:順序、鏈式、索引、雜湊儲存結構。
在使用高階程式語言編寫程式時,必須對程式**現的每個變數、常量或表示式,明確說明它們所屬的資料型別。
何為資料型別?
資料型別是一組性質相同的值的集合以及定義於這個值集合上的一組操作的統稱。
那麼為何抽象資料型別?
抽象資料型別(abstract data type,簡稱adt)是指乙個數學模型以及定義在該模型上的一組操作的統稱。抽象資料型別的定義僅取決於它的一組邏輯特性,而與其在計算機內部如何表示和實現無關,即不論其內部結構如何變化,只要它的數學特性不變,都不影響其外部的使用。
抽象資料型別可用三元組(d、s、p)表示,其中:
其定義格式如下;
adt 抽象資料型別名adt 抽象資料型別名
其中資料物件、資料關係的定義用偽**描述。
對於基本操作的定義格式如下:
概念總是晦澀難懂的,下面通過乙個具體的例子理解一下抽象資料型別是如何定義的:
adt circle
資料關係:r =
基本操作:
circle
(&c,r,x,y)
操作結果:生成乙個圓
double
area
(c)
初始條件:圓已經生成
操作結果:計算圓的面積
double
perimeter
(c) 初始條件:圓已經生成
操作結果:計算圓的周長 ..
....
}adt circle
這是乙個circle型別的定義。
說完了抽象資料型別的定義,我們來看看該如何實現抽象資料型別。
抽象資料型別可以通過固有的資料型別(如整型、實型、字元型等)來表示和實現。
即利用處理器中已存在的資料型別來說明新的結構,用已經實現的操作來組合新的操作。
下面我們通過c語言作為描述工具來實現一下。
typedef
struct
circle;
//定義抽象資料型別
void
circle
(&c,r,x,y)
;//生成圓
double
area
(c)//計算圓的面積
double
perimeter
(c)//計算圓的周長
這裡只是演示,所以並沒有實現定義的函式功能。 基本概念和術語
資料 是描述客觀事物的符號,是計算機中可以操作的物件,是能被計算機識別,並輸入給計算機處理的符號集合。資料不僅僅包括整型 實型等數值型別,還包括字元及聲音 影象等非數值型別。我們所說的資料其實就是符號,這些符號具備的前提是 1.可以輸入到計算機中 2.能唄計算機處理 資料元素 是組成資料的 有一定意...
網路程式設計的基本概念和術語
網路程式設計的基本概念和術語 ip位址的作用是標識網路中的一台計算機,網路中的每台計算機都有乙個ip位址。ip位址相當於乙個手機號碼,使用這個位址可以訪問一台計算機。ip位址具有統一的格式,ipv4位址是32位長度的二進位制數值,佔4個位元組,如11000000 10101000 00000001 ...
資料結構 基本概念和術語
第一章 緒論 1.1 什麼是資料結構 資料結構研究的主要內容 資料結構是一門研究非數值計算的程式設計問題中計算機的操作物件以及它們之間的關係和操作等的學科。1.2 基本概念和術語 資料 data 所有能被輸入到計算機中,且被計算機處理的符號的集合是計算機操作對 象的總稱。資料元素 data elem...