Eulerian Path ในกราฟมีทิศทาง (Directed Graph) ต้องเงื่อนไข:
- กราฟต้อง connected (ทุก vertex ไปถึงกันได้)
- มี vertex แค่ 1 จุดที่ out-degree = in-degree + 1 (จุดเริ่ม)
- มี vertex แค่ 1 จุดที่ in-degree = out-degree + 1 (จุดสิ้นสุด)
- vertex ที่เหลือต้องมี in-degree = out-degree
อัลกอริทึม
- DFS ตรวจสอบ connectivity
- นับ in-degree และ out-degree ทุก vertex
- ตรวจสอบเงื่อนไขข้างต้น
โค้ดสำคัญ
bool hasEulerPath() {
if (!isConnected()) return false;
vector<int> in(NODE,0), out(NODE,0);
for (int i=0; i
ผลลัพธ์
Euler Path Found.