參考:
注意path
陣列長度為1
025(
edge的個數
),剛開始
弄成50
1(vertex個數)
結果test8爆
棧了/*
id: wangxin12
prog: fence
lang: c++
*/#include #include #define max 505
#define max(a,b) (a > b ? a : b)
#define min(a,b) (a < b ? a : b)
using namespace std;
int map[max][max], num[max], path[1050]; //map¹¹í¼£¬ num¼çôø㿸öµã¶èêý£¬path¼çôøâ·¾¶
int minn, maxn, index = 0; //òòîªìâä¿öðvertex²»´ó1¿ªê¼£¬òªôú¶áèëêý¾ýµä걺ò¼çôøvertexµä×îð¡×î´óöµ
void circle(int x) //find the smallest neighbor
map[x][i]--, map[i][x]--;
num[x]--, num[i]--; //delete this edge
circle(i); //
} while ( num[x] );
path[index++] = x;
} else
path[index++] = x;
}void deal()
} circle(minn);
}int main()
deal();
//output
for(int j = index - 1; j >= 0; j--) {
fo<
尤拉迴路 輸出尤拉迴路的路徑
有向or無向均可,重邊 step1 從u開始,找到與他相連的v,放入棧,刪除 u,v 這條邊,然後從v開始 step2 當有一點沒有與他相連的點時,放入path,然後從stack取棧頂繼續開始找點刪邊。最後記得把棧裡的點放到path中。path倒序輸出 需要先找到起點 鄰接表法,適合稀疏圖 incl...
尤拉迴路,尤拉路
參考以上 判斷尤拉路,尤拉迴路 注意圖聯通,可以dfs 或者並查集 一 無向圖 尤拉迴路 每個頂點度數都是偶數 尤拉路 所有點度數為偶數,或者只有2 個點度數為奇數 二 有向圖 非混合 尤拉迴路 每個頂點入度等於出度 尤拉路 每個頂點入度等於出度 或者只有1 個點入度比出度小 1,從這點出發,只有 ...
尤拉路 尤拉迴路
1 尤拉路 在乙個連通圖中存在一條路,經過途中所有邊一次且僅一次,這條路叫做尤拉路。2 尤拉迴路 在乙個連通圖中存在一條路,經過途中所有邊一次且僅一次,出發點亦是終點,這樣的路是尤拉迴路。1 無向圖有一條尤拉路 圖是連通的,且全部的結點的度是偶數 就是尤拉迴路的情況 或只有兩個結點的度是奇數。2 無...