數據結構---圖的相關總結

圖的相關概念

  • 什麼是圖:圖(Graph)是由頂點的有窮非空集合和頂點之間邊的集合組成,一般表示爲:G(V,E),其中,G表示一個圖,V是圖G中頂點的集合,E是圖G中邊的集合。
  • 圖的分類數組

    • 無向圖: 圖中任意兩個頂點之間的邊都是無向邊(頂點之間的邊沒有方向)。
    • 有向圖: 圖中任意兩個頂點之間的邊都是有向邊。spa

      注意:無向邊用小括號「()」表示,而有向邊則是用尖括號「<>」表示。
    • 無向徹底圖: 在無向圖中,若是任意兩個頂點之間都存在邊,則稱該圖爲無向徹底圖。含有n個頂點的無向徹底圖有$n(n-1)/2$條邊。
    • 有向徹底圖: 在有向圖中,若是任意兩個頂點之間都存在方向互爲相反的兩條弧,則稱該圖爲有向徹底圖。含有n個頂點的有向徹底圖有$n×(n-1)$條邊。
    • 網: 帶權的圖一般稱爲網.(圖的邊具備與它相關的數字叫作權,能夠表示從一個頂點到另外一個頂點的距離或耗費。)
    • 連通圖: 在無向圖中,對於圖中任意兩個頂點都是連通的(頂點i到頂點j有路徑).
    • 強連通圖: 在有向圖中,對於圖中任意兩個頂點都是連通的。
    連通份量: 無向圖中的極大連通子圖稱爲連通份量。連通份量的概念強調:
    1.要是子圖;
    2.子圖要是連通的;
    3.連通子圖含有極大頂點數;
    4.具備極大頂點數的連通子圖包含依附於這些頂點的全部邊。
  • 相關術語ip

    • 鄰接點:一條邊上的兩個頂點。
    • 度: 頂點v的度(Degree)是和v相關聯的邊的數目。對於有向,$頂點的度=頂點的入度+頂點的出度$it

      注意:
      1.無向圖中全部頂點的度之和等於邊數的2倍,有向圖中全部頂點的入度之和等於全部頂點的出度之和。
      2.不管無向圖仍是有向圖,頂點數n,邊數e和度之間又以下關係:$E=(d[v1]+d[v2]+…+d[vn])/2$
    • 簡單路徑: 序列中頂點不重複出現的路徑稱爲簡單路徑。
    • 簡單迴路: 除了第一個頂點和最後一個頂點以外,其他頂點不重複出現的迴路,稱爲簡單迴路或簡單環。

代碼實現

圖的鄰接矩陣

無向圖:
clipboard.pngclass

  • 某個頂點i的度,其實就是這個頂點i在鄰接矩陣中第i行(或第i列)的元素之和。
  • 頂點i的全部鄰接點就是將矩陣中第i行元素掃描一遍,值爲1的爲鄰接點。

有向圖:
clipboard.pngcli

  • 頂點i的入度爲第i列各數之和,出度爲第i行各數之和。

網:
clipboard.pngim

鄰接矩陣對於邊數相對頂點較少的圖,存在對存儲空間的極大浪費的現象。因此這種存儲方式不適合稀疏圖。

圖的鄰接表

鄰接表:數組與鏈表相結合的存儲方式。
無向圖:
clipboard.png鏈表

有向圖:
clipboard.pngimg

網圖:
clipboard.png集合

$參考:https://www.zybuluo.com/guoxs/note/249812$$

相關文章
相關標籤/搜索