وجود دور رو با BFS , DFS میشه تشخیص داد کافیه که BFS رو روی یک راس شروع کنی بعد راس هایی که ازشون رد میشی رو مارک دار کنی اگر به همون راس اول رسیدی که دور داری
اگر نرسیدی باید یکی دیگه از راس هایی که مارک دار نشدن رو برداری و مرحله بالا رو دوباره تکرار کنی .
برای پیدا کردن تمام دور هایی که از یک راس به راس دیگه وصل میشن هم از الگوریتم هایی مثل این استفاده میکنن
http://en.wikipedia.org/wiki/Tarjan%27s_strongly_connected_components_algorithm
البته تمام دور های داخل گراف رو بعید می دونم به این راحتی بشه پیدا کرد قکر کنم جزو مسایل NP-complete حساب میشه !