سلام
من یه توضیحاتی می دم. امیدوارم مفید باشه.

در الگوریتم ادموندز-کارپ، قراره مسیر منبع تا چاه در کمترین یال پیدا بشه یعنی دیگه مسیرهای گمراه کننده و زیاد شونده و بی خودی باید حذف بشه. یکی از طرقش استفاده از BFS هست. در این الگوریتم(ادموندز-کارپ) ما هم جهت داریم و هم اندازه یال ولی برای پیدا کردن کوتاهترین مسیر دیگه در BFS نه به اندازه یال ها نگاه می کنیم و نه به جهت اونها بلکه بدون جهت و با اندازه 1. حالا مسیری پیدا شد ولی ممکنه اون مسیری نباشه که ما را به چاه برسونه، خوب از یه مسیر دیگه می ریم. یعنی چون جهت رو از بین بردیم اینجوری شد. اینقدر این حلقه می چرخه تا بالاخره مسیر کوتاهی پیدا بشه که ما رو به چاه برسونه.
حالا برای الگوریتم شما هم همینه، قراره از آراد به بخارست برسید. با این الگوریتم با کوتاهترین مسیر می رسید.
اینی که گفته شده تا عمق 12، به نظرم درست نباشه چون شاید شما مجبور باشید تا آخرین عمق درخت یا گراف رو پیمایش کنید تا به بخارست برسید.
اگر هم واقعاً این منظور باشه، که هر سطحی که توسط این الگوریتم پیمایش می شه یعنی یک عمق شما پیش رفته اید، البته به غیر از ریشه که در سطح صفر قرار دارد.
شما باید کل حلقه while رو بنویسید که کل درخت یا گراف رو پیمایش بکنه و شرط if قرار بدید که اگر به سطح 12 رسید از برنامه خارج بشه. در این حالت یا به بخارست رسیده یا نرسیده. یه متغیر تعریف کنید و مقدار اون رو صفر بگذارید و هر بار که گره ای ملاقات شد و همسایه های اون وارد صف شد، یکی به شمارنده اضافه کنید و هر بار با شرطی که در if می گذارید چک کنید تا از عمق 12 خارج نشود.