天天看點

算法學習之路|歐拉回路初見

歐拉道路,一個詞概括就是一筆畫。一張連通圖能用一筆畫不重複的走完每一條邊的就是歐拉道路,起點和終點是同一點的是歐拉回路。

那麼判斷一張圖是不是歐拉回路就可以通過記錄每一點的度數,所有點度數均是偶數的是歐拉回路,有一到兩個點度數是奇數的是歐拉道路,有兩個點以上是奇數度數的不是歐拉道路。有向圖條件更苛刻一點,需要點入度和出度相等才能構成歐拉回路,即使是歐拉道路也需要入度和出度相差僅為一,且這樣的店不能超過兩個。

七橋問題,給出一張圖,判斷是否是歐拉回路:

代碼是照着模闆敲的,用到了并查集,回顧了一下。

并查集用來判斷兩個節點是否同屬于一個根節點,在這裡用來判斷圖是否是連通圖。

并查集把已經确定互相連接配接的兩個集合并入一個集合,

此題隻需判斷是否歐拉回路,是以不必深究具體的道路,如果是求歐拉道路,判斷點的度數使隻需加上奇數不超過兩個。

繼續閱讀