1. 程式人生 > >歐拉回路,尤拉路徑,尤拉圖詳解

歐拉回路,尤拉路徑,尤拉圖詳解

歐拉回路定義:

歐拉回路:每條邊恰好只走一次,並能回到出發點的路徑

尤拉路徑:經過每一條邊一次,但是不要求回到起始點

首先看歐拉回路存在性的判定(這裡先不說混合圖):

一、無向圖
每個頂點的度數都是偶數,則存在歐拉回路。

二、有向圖(所有邊都是單向的)
每個節頂點的入度都等於出度,則存在歐拉回路。

判斷尤拉路徑是否存在的方法

1.有向圖 : 圖連通,當且僅當該圖所有頂點數的度數為0,或者一個頂點的度數為1,另一個頂點的度數為-1,其他頂點的度數為0.

2.無向圖:圖連通,當且僅當該圖所有頂點的度數為偶數,或者除了兩個度數為奇數外其餘的全是偶數。

判斷歐拉回路是否存在的方法

1.有向圖:圖連通,所有的頂點出度=入度。

2.無向圖:圖連通,所有頂點都是偶數度。

程式實現一般是如下過程:

1.利用並查集判斷圖是否連通,即判斷p[i] < 0的個數,如果大於1,說明不連通。

2.根據出度入度個數,判斷是否滿足要求。

3.利用dfs輸出路徑。

(以後再有理解再補充害羞