數據結構與算法(15)--圖的基本概念

定義

圖G由頂點集V和邊集E組成,記爲G=(V,E)
V(G)表示圖G中頂點的有限非空集。用|V|表示圖G中頂點的個數,也稱爲圖G的階。
E(G)表示圖G中頂點之間的關係(邊)集合,用|E|表示圖G中邊的條數。
圖不可以爲空,一個圖中就算是一條邊都沒有,也就是邊集爲空,但頂點集一定不爲空。

有向圖
無向圖
  • 有向圖
    • 弧是頂點的有序對
    • <v,w>
    • v是弧尾,w是弧頭
    • v鄰接到w或者w鄰接自v
  • 無向圖
    • 邊是頂點的無序對
    • (v,w)
    • (v,w) = (w,v)
    • w,v互爲鄰接點
簡單圖
多重圖
  • 簡單圖
    • 不存在頂點自身的邊
    • 同一條邊不重複出現
  • 多重圖
    • 若圖G中某兩個結點之間的表示農戶多於一條
      又允許頂點通過同一條邊和自己關聯。
完全圖
無向完全圖
有向完全圖
  • 無向完全圖
    如果任意兩個頂點之間都存在邊。
    對於n個頂點,每個頂點都與其他n-1個頂點有一條邊,由於重複,所以一共有n×(n1)/2n\times (n-1)/2條邊。

  • 有向完全圖
    如果任意兩個頂點之間都存在方向相反的兩條弧。
    對於n個頂點,每個頂點都與其他n-1個頂點有一條邊,由於重複,所以一共有n×(n1)n\times (n-1)條邊。

  • 子圖
    設有兩個圖 G=(V,E)G=(V,E)G1=(V1,E1)G^1=(V^1,E^1),若V1V^1VV的子集,E1E^1EE的子集,則稱G1G^1GG的子圖。

  • 生成子圖
    如果滿足V(G1)=V(G)V(G^1)=V(G)的子圖G1G^1,則爲G的生成子圖。

基本概念

  • 連通
    頂點VV到頂點V1V^1有路徑。

  • 連通圖
    圖中任意兩個頂點都是連通的。

    • 如果一個圖有n個頂點,並且有小於n-1條邊,則此圖必是非連通圖。
  • 連通分量
    無向圖中的極大連通子圖。

    • 子圖
    • 連通
    • 極大
      頂點足夠多
      極大連通子圖包含這些依附這些頂點的所有邊。

    找連通分量的方法
    從選取一個頂點開始,以這個頂點作爲一個子圖,然後逐個添加與這個子圖相連的頂點和邊,直到所有相連的頂點都加入該子圖中。

  • 強連通
    頂點v到頂點w和頂點w到頂點v都有路徑

  • 強連通圖
    圖中任一對頂點都是強連通的。

  • 強連通分量
    有向圖中的極大強連通子圖

    • 子圖
    • 強連通
    • 極大
      • 頂點足夠多
      • 極大強連通子圖中包含依附這些頂點的所有邊。
  • 連通圖的生成樹
    包含圖中全部n個頂點,但是隻有n-1條邊的極小連通子圖。
    生成樹去掉一條邊則變成非連通圖,加上一條邊就會形成迴路。

  • 非連通圖的生成森林
    每個連通分量的生成樹構成生成森林。


  • 以該頂點爲一個端點的邊的數目。

    • 無向圖中頂點v的度是指依附於該頂點的邊的條數,記爲TD(v)
    • 有向圖中頂點v的度分爲出度和入度。
      • 入度(ID)是以頂點v爲終點的有向邊的數目。
      • 出度(OD)是以頂點v爲起點的有向邊的數目。
        i=1nTD(vi)=2e() 無向圖 \sum_{i=1}^nTD(v_i) = 2e (邊數的兩倍)
        i=1nID(vi)=i=1nOD(vi)=e有向圖 \sum_{i=1}^nID(v_i)=\sum_{i=1}^nOD(v_i) = e
  • 有向樹
    有一個頂點的入度爲0,其餘頂點的入度均爲1的有向圖。

  • 權和網
    圖中每條邊可以賦予一定的意義的數值,這個數值叫做這條邊的權,有權值的圖稱爲帶權圖,也叫做網。

  • 路徑和路徑長度
    頂點p到q之間的路徑是指頂點序列p,a,b,c,d…q,路徑上邊的數目就是路徑長度。

  • 迴路(環)
    第一個和最後一個頂點相同的路徑稱爲迴路或者環。

  • 簡單路徑和簡單迴路
    頂點不重複出現的路徑稱爲簡單路徑
    對於迴路,除了第一個和最後一個頂點其餘頂點不重複出現的迴路稱爲簡單迴路。

  • 距離
    從頂點u到v的最短路徑長度,不存在路徑則無窮。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章