1. 程式人生 > >資料結構(C語言版)

資料結構(C語言版)

基本概念及術語

資料結構基本概念
1.資料
所有能輸入到計算機中並被程式處理的符號集合。
2.資料元素
資料的基本單位,在計算機程式中通常被作為一個整體考慮和處理。
3.資料項
資料不可分割的最小單位,相當於記錄的”域”或者欄位。
4.資料物件
性質相同的資料元素的集合,是資料的一個子集。如大寫字母就是一個數據物件。
5.資料結構
(1)簡單定義:相互之間存在一種或多種特定關係的資料元素的集合,這種資料元素的相互關係稱為結構。
(2)形式定義:是指資料結構是一個二元組,Data_Structure=(D,S),D是資料元素的有限集,S是D上關係的有限集。
例:如圖所示的矩陣,對應陣列表示為A=(D,R)
D={1,2,3,4,5,6,7,8,9,10,11,12};
R={r1,r2}
r1表示行關係,r2表示列關係。

A=147102581136912
6.資料的邏輯結構
元素之間的邏輯關係,即資料元素之間的關聯方式或臨接關係。
7.儲存結構(物理結構)
資料的邏輯結構在計算機中的表示(映像)
8.資料的運算
對資料施加的操作。
資料的運算定義的資料的邏輯結構層次上,只有確定了儲存結構,才能具體實現這些運算。
9.資料型別
一個值的集合&定義在這個值集上的一組操作的總稱。
規定了該型別資料的取值範圍和所能進行的操作。
10.抽象資料型別ADT
一個數據模型及定義在該模型上的一組操作。
資料型別指的是高階程式設計語言支援的基本資料型別。
而抽象資料型別通常指的是自定義的資料型別,由基本資料型別組成,幷包含一組相關操作。
可以用三元陣列(D,S,P)表示
D:資料物件
S:D上的關係集
P:對D的基本操作
資料結構的分類

1.按資料之間的關係分
(1)線性結構
該結構中的結點之間存在一對一的關係
特點:開始結點沒有前驅,終端結點沒有後繼。
除了開始結點和終端結點,其餘結點都有且僅有一個直接前驅和直接後繼。
(2)非線性結構
結構中的結點之間存在一對一或多對多的關係。
2.按邏輯結構分
(1)集合結構
資料元素同屬於一個集合,每個資料元素都和其它元素無任何關係。
(2)線性結構
資料元素之間存在著一對一的線性關係。
(3)樹型結構
資料元素之間存在著一對多的層次關係
(4)圖形結構(網狀結構)
資料元素之間是多對多的任意關係,如公交站點
3.按儲存方式分
(1)順序儲存結構
用一個連續的地址空間,把邏輯上相鄰的結點按某個次序放在物理位置上相鄰的儲存單元裡。
結點之間的邏輯關係由儲存單元的鄰接關係體現。
通常藉助程式語言中的陣列描述。
(2)鏈式儲存結構
不要求邏輯上相鄰的結點在物理位置上也相鄰。
結點間的邏輯關係是由附加的指標欄位來表示的。
通常藉助於程式語言的指標來描述。
(3)索引儲存結構
除建立結點資訊外,還要建立附加的索引來標識結點的地址。
(4)雜湊儲存結構
選擇一適當的雜湊函式,根據結點的關鍵字直接計算出該結點的儲存地址。