歐拉回路(Euler Circuit)
阿新 • • 發佈:2019-02-10
定義:若一副圖中從某個頂點A走出,經過圖中的所有的邊,且每條邊只經過一次,則稱這個環為歐拉回路,如果某幅圖含有這樣的環,則這幅圖叫做尤拉圖。
如何判斷一幅圖是不是尤拉圖,也即一幅圖中是否含有歐拉回路。
- 如果一幅圖中所有頂點的出度等於入度,且此圖為強連通圖,則此圖含有歐拉回路,這幅圖為尤拉圖。
判斷是否為存在歐拉回路可以直接利用上面的判斷定理,但是打印出相應的路徑就相對困難一些。
假設圖G為一副含有歐拉回路的圖,也即尤拉圖。
- 隨機選取G中的一個頂點A,如果A不存在沒有訪問過的邊,則將A加入路徑
- 如果A存在沒有訪問過的邊,則隨機取出A的一條未訪問過的邊進行訪問,此時訪問的頂點為B。
- 重複上述兩步,直到所有的邊都被訪問過為止。
- 此時就得到了相應的歐拉回路。
- 首先隨機選擇一個頂點A,進行路徑尋找,最終會找到一個以A為起點和終點的環。
- 此時如果不存在沒有訪問過的邊,則這個環就為尤拉環。
- 如果存在沒有訪問過的邊,則我們可以知道,要想得到完整的尤拉環,必須先訪問未訪問過的邊,為此說明此時的環A中含有某個頂點C,其存在沒有訪問過的邊
- 從C開始訪問C未訪問過的邊,必得到一個以C為起點和終點的環,此時將這個環加入到A中,這就得到了我們想要的尤拉環。