天天看點

歐拉道路 歐拉回路 歐拉圖 歐拉半圖

歐拉回路:包含圖G的每一條邊的回路

歐拉圖:含有歐拉回路的圖

歐拉半圖:含有歐拉道路的圖

歐拉回路與歐拉道路的關系

如果歐拉道路的起點與終點重合,那麼這條歐拉道路是歐拉回路

定理

:無向連通圖G是歐拉圖,當且僅當G不含奇數度結點(G的所有結點度數為偶數);

:無向連通圖G含有歐拉通路,當且僅當G有零個或兩個奇數度的結點;

:有向連通圖D是歐拉圖,當且僅當D中每個結點的入度=出度

:有向連通圖D含有歐拉通路,當且僅當D中除兩個結點起點s終點t外,其餘每個結點的入度=出度,(起點s的入讀=出度+1,終點t的出度=入度+1 或兩個點的入讀=出度)

有向圖在考慮圖的連通性的時候應去除邊的方向性

無向圖輸出歐拉路或回路的方法

void euler(int start)

{

for(int next=0;next<n;next++)

{

if(G[start][next]&&color[start][next])

{

color[start][next]=color[next][start]=false;//已經周遊

euler(next);

cout<<next<<""<<start<<endl;

}

}

}

如果為有向圖隻需修改color[start][next]=color[next][start]=false;

為color[start][next]=false;即可