1. 程式人生 > >4-邏輯結構的二元組表示方法

4-邏輯結構的二元組表示方法

1. 二元組表示法

對於資料的邏輯結構還有一種二元組表示法,下面是二元組表示方法。

邏輯結構二元組表示方法:B = (D , R)
B——資料結構
D——資料元素的集合
R——D上二元關係的集合

  在上面這種二元組表示方法中,B就是一種資料結構, 用上面的二元組來表示B這種資料結構時,就是由資料元素的集合D和D中的二元關係的集合R組成的,通過這句話,我們可以明白:

D=di|1in,n0, 資料元素的集合

  di 表示的是集合D中第i個節點或資料元素,換句話說,資料元素的集合D就是由多個di組成的。

這裡寫圖片描述
圖1-學生資訊表

  如圖1所示,每一個同學的資訊(學號,姓名,班號)都是一個數據元素,也就是說,資料元素的結合D包括了圖中的每一位同學,而

di則表示圖中的第i個同學的資訊。另外,我們知道學號是具有唯一性,且不會重複,因此我們在抽取資料集合時,可以用學號來代表每一位同學的資訊(學號,姓名,班號)。

  n表示了資料元素的集合D中節點或元素的個數,如果n為0則說明D中節點或元素個數為0,D是一個空集。


R=rj|1jm,m0, D上二元關係的集合

  R代表了D上二元關係的集合,這個二元關係是表示上圖中(資料元素的集合D中)的兩兩元素之間的關係,比如:100和101這兩個資料元素之間的關係就是一個二元關係,101和102也是如此。也就是說,集合R中有多個二元關係。

  rj 表示了集合R中的第j個二元關係,且每個關係用序偶表示。

  序偶表示方法: <xy>(xy),括號中的x,y兩個元素之間的關係就是一個二元關係。

  x為第一個元素,y為第二個元素,x為y的前驅元素,y為x的後繼元素

  對於開始元素來說,沒有前驅元素節點;對於終端元素來說,沒有後繼元素節點。

  <xy> 代表有向關係,也就是說x為第一,y為第二;而 (xy)代表無向關係,也就是說沒有前後之分,第一和第二之分。因此我們可以知道rj 就是由若干個這樣的序偶來表達的。

  對於m來說,m表示了集合R中二元關係的個數,如果m = 0,表示二元關係的集合R是一個空集,R是一個空集的話就說明了集合D中元素間是獨立的,不存在任何關係,對這種關係只要瞭解即可。我們在學習資料結構時應該關注有結構的,彼此之間有關係的資料是如何組織的。



  我們根據上面所描述知道了二元組的表示方法,那麼再對於學生表的邏輯結構二元組表示,如下所示:

學生表 = (D,R)
D = {100,101,102,103}
R = {r}
r = {<100,101>,<101,102>,<102,103>}

  我們從D上二元關係的集合R中可以知道它們的關係是一個有向關係,具體關係如r中的所示:在<100,101>序偶中100為第一個資料元素,101為第二個資料元素,其他以此類推,不難看出元素之間是兩兩相鄰的關係,最終它們形成的結構就是一個線性結構,如下所示:

這裡寫圖片描述
圖2-學生表的邏輯結構

2. 邏輯結構的二元組表示法

  現在我們來看一個例子,根據邏輯結構來畫出其二元組表示法。在圖3中一個矩陣,資料如下:

這裡寫圖片描述
圖3-矩陣的邏輯結構

對應的邏輯結構二元組表示如下:

B = {D,R}
D = {2,6, 3 ,1 ,8 ,12 , 7 ,4 ,5 ,10 ,9 ,11}
R = {r1 ,r2} (r1表示行關係,r2表示列關係)
r1 = {<2,6><6,3><3,1><8,12><12,7><7,14><5,10><10,9><9,11>}(行關係)
r2 = {<2,8><8,5><6,12><12,10><3,7><7,9><1,4><4,11>}(列關係)

  D表示了資料元素的集合,而D的大括號中的就是資料元素,而R表示了D上二元關係的集合,也就是在二元關係的集合R中有r1和r2這兩個二元關係,其中r1代表行關係,r2代表列關係。

3. 根據二元組畫出邏輯結構

  在應用過程中,當給出二元組這種抽象的表示方法之後,我們應該做到能夠根據這種抽象的二元組表示法中給出的資訊,用邏輯結構圖畫出來,通過邏輯結構更加直觀的判斷具體屬於哪一種資料結構。

3.1 例1

二元組表示法如下:

B1 = (D,R)
D = {a,b,c,d,e,f,g,h,i,j}
R = {r}
r = { <a,b><a,c><a,d><b,e><c,f><c,g><d,h><d,i><d,j> }

  從它的二元關係的序偶 <a,b> 中可以看出這是一個有向關係,那麼其二元組關係對應的邏輯結構如下圖所示:

這裡寫圖片描述
圖4-邏輯結構1

3.2 例2

二元組表示如下:

B2 = (D,R)
D = {a,b,c,d,e}
R = {r}
r = { (a,b), (a,c), (b,c), (c,d), (c,e), (d,e) }

  從它的二元組序偶(a,b)可以看出這是一個無向關係,那麼其二元組對應的邏輯結構圖表示如下圖所示:

這裡寫圖片描述
圖5-邏輯結構2

3.3 例3

二元組表示如下:

B3 = (D,R)
D = {48,25,64,57,82,36,75}
R = {r1 , r2}
r1 = {<48,25><48,64><64,57><64,82><25,36><82,75>}
r2 = {<25,36><36,48><48,57><57,64><64,57><75,82>}

  我們從R = {r1 ,r2} 來看,在二元關係的集合R中有r1,r2兩個關係,那麼這兩個二元關係對應的邏輯結構圖如下圖所示:

這裡寫圖片描述
圖6-邏輯結構3

在圖6中r1關係如藍色箭頭所示,r2關係如紅色箭頭所示。