1. 程式人生 > >資料結構_二元組

資料結構_二元組

今天在牛客網上看到這樣一個題目:

當時做的時候直接沒反應過來,後來看解析的時候,才知道,二元組,圖論上學過嘛。而且,我們以前也經常接觸,圖(V,E)就是嘛。

資料結構分為:邏輯結構、儲存結構。

邏輯結構分為:集合、線性結構、樹形結構、圖形結構。
    --線性表、棧、佇列、樹、圖等邏輯結構。

        --其中線性表、棧、佇列為線性結構,樹和圖都是非線性結構。

物理儲存結構分為:順序儲存結構、鏈式儲存結構,索引結構,雜湊結構。

        
邏輯結構可以採用兩種方法來描述:二元組、圖形。
    --二元組表示形式: DS = ( D, S )   【Data Structure】
        --其中 D 是資料元素的集合; S 是 D 中資料元素之間的關係集合,並且資料元素之間的關係是使用序偶來表示的。序偶是由兩個元素 x 和 y 按一定順序排列而成的二元組,記作<x , y>, x 是它的第一元素, y 是它的第二元素。
        

    --當使用圖形來表示資料結構時,是用圖形中的點來表示資料元素,用圖形中的弧來表示資料元素之間的關係。如果資料元素 x 與 y 之間有關係<x , y>,則在圖形中有從表示 x 的點出發到達表示 y 的點的一條弧。

現在,另資料結構的二元組形式為:DS = (D, S),則:

  1. 如果 D != null,而S == null,則該資料結構為集合結構。
  2. 如果 D = {01, 02, 03, 04, 05},S = {<02,04>, <03,05>, <05,02>, <01,03>},則該資料結構是線性結構。
    在這些資料元素中有一個可以被稱為“第一個”的資料元素;還有一個可以被稱為“最後一個”的資料元素;除第一個元素以外每個資料元素有且僅有一個直接前驅元素,除最後一個元素以外每個資料元素有且僅有一個直接後續元素。這種資料結構的特點是資料元素之間是 11 的聯絡,即線性關係。
  3. D = {01, 02, 03, 04, 05, 06}
    S = {<01,02>, <01,03>, <02,04>, <02,05>, <03,06>}
    除了一個數據元素(元素 01)以外每個資料元素有且僅有一個直接前驅元素,但是可以有多個直接後續元素。這種資料結構的特點是資料元素之間1 N 的聯絡,即樹結構。
  4. D = {01, 02, 03, 04, 05}
    S = {<01,02>, <01,05>, <02,01>, <02,03>, <02,04>, <03,02>,<04,02>, <04,05>, <05,01>, <05,04>}:
    每個資料元素可以有多個直接前驅元素,也可以有多個直接後續元素。這種資料結構的特點是資料元素之間是 M N 的聯絡,即圖結構。