歐拉回路:包含圖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;即可