新知識添加·歐拉回路+歐拉路徑
§概念
歐拉通路: 通過圖中每條邊且只通過一次,並且經過每一頂點的通路;
歐拉回路: 通過圖中每條邊且只通過一次,並且經過每一頂點的回路;
歐拉環:圖中經過每條邊一次且僅一次的環;
歐拉路徑:圖中經過每條邊一次且僅一次的路徑;
歐拉圖:有至少一個歐拉環的圖;
半歐拉圖:沒有歐拉環,但有至少一條歐拉路徑的圖;
基圖:對一個圖而言把所有邊視作無向邊得到其基圖,即將所有有向邊變成無向邊形成的無向圖。
無向圖
設G是連通無向圖,則稱經過G的每條邊一次並且僅一次的路徑為歐拉通路;
如果歐拉通路是回路(起點和終點是同一個頂點),則稱此回路是歐拉回路;
具有歐拉回路的無向圖G成為歐拉圖
有向圖
(1)設D是有向圖,D的基圖連通,則稱經過D的每條邊一次並且僅有一次的有向路徑為 有向歐拉通路
(2)如果有向歐拉通路是有向回路,則稱此有向回路為 有向歐拉回路
(3)具有有向歐拉回路的圖D稱為有向歐拉圖
定理
無向圖G存在歐拉通路的充要條件是:G為連通圖,並且G僅有兩個奇度結點(度數為奇數的頂點)或者無奇度結點。
推論
(1) 當G是僅有兩個奇度結點的連通圖時,G的歐拉通路必以此兩個結點為端點;
(2)當G是無奇度結點的連通圖時,G必有歐拉回路
(3)G為歐拉圖(存在歐拉回路)的充分必要條件是 G為無奇度結點的連通圖
(有向圖) 定理
有向圖D存在歐拉通路的充要條件是:D為有向圖,D的基圖連通,並且所有頂點的出度與入度相等;或者 除兩個頂點外,其余頂點的出度與入度都相等,而這兩個頂點中一個頂點的出度與入度之差為1,另一個頂點的出度與入度之差為-1.
推論
(1)當D除出、入度之差為1,-1的兩個頂點之外,其余頂點的出度與入度相等時,D的有向歐拉通路必以出、入度之差為1的頂點作為始點,以出、入度之差為-1的頂點作為終點。
(2)當D的所有頂點的出、入度都相等時,D中存在有向歐拉回路。
(3)有向圖D為有向歐拉圖的充要條件是 D的基圖為連通圖,並且所有頂點的出、入度都相等。
歐拉回路的求解
兩種方法:(1)DFS搜索 (Fleury)佛羅萊算法
(1)DFS搜索 思想求解歐拉回路的思路為:利用歐拉定理判斷出一個圖存在歐拉通路或歐拉回路後,選擇一個正確的起始頂點,用DFS算法遍歷所有的邊(每條邊只遍歷一次),遇到走不通就回退。在搜索前進方向上將遍歷過的邊按順序記錄下來。這組邊的排列就組成了一條歐拉通路或回路。
(2) (Fleury)佛羅萊算法
設G為一個無向歐拉圖,求G中一條歐拉回路的算法如下:
(1) 任取G中一頂點v0,令P0=v0;
(2)假設沿Pi=v0e1v1e2v2......eivi走到頂點vi,按下面方法從E(G)-{e1,e2,...,ei}中選ei+1。
ei+1與vi相關聯
除非無別的邊可供選擇,否則ei+1不應該是Gi=G-{e1,e2,...,ei}中的橋。
(3)當(2)不能再進行時算法停止。
可以證明的是,當算法停止時,所得到的簡單回路Pm=v0e1v1e2v2......emvm,(vm=v0)為G中一條歐拉回路。
加一道簡單題 洛谷-1341(詳情見圖論雜題專題)
2017-10-20 13:57:14 Hathaway
新知識添加·歐拉回路+歐拉路徑