Chu trình Euler (Eulerian circuit) là đường đi Euler bắt đầu và kết thúc tại cùng một đỉnh. Điều kiện:
- Đồ thị liên thông.
- Tất cả đỉnh đều có bậc chẵn (odd degree = 0).
Ví dụ code
#include <iostream>
#include <vector>
#define NODE 5
using namespace std;
int graph[NODE][NODE] = {
{0,1,1,1,1},
{1,0,1,0,0},
{1,1,0,0,0},
{1,0,0,0,1},
{1,0,0,1,0}
};
// dfs, isConnected giống bài trước
int hasEulerianCircuit() {
if (!isConnected()) return 0;
vector<int> deg(NODE,0);
int odd = 0;
for (int i=0; iKết quả
Có chu trình Euler