С точки зрения структур данных, разница между глубиной первой и шириной первой заключается в том, что глубина первой использует стек, а ширина первой использует очередь.
В глубине души идея заключается в том, чтобы "иметь дело с последствиями последней вещи, с которой вы столкнулись". Таким образом, со стеком вы всегда выталкиваете последний узел, который был нажат, и вы получаете правильное поведение.
Вначале идея заключается в том, чтобы «сначала разобраться со всеми последствиями выбранного узла, а затем двигаться дальше». Итак, вы сначала выясняете последствия (и сохраняете их), и только потом начинаете разбираться с ними в том порядке, в каком вы их нашли. Простейшая структура данных для поддержки этого - очередь.
Проблема в том, что рекурсия использует стек (стек вызовов). Таким образом, вы не видите структуру данных, но на самом деле она есть. Поскольку не существует (простого) способа организации очередей вызовов, вы не можете перевести поиск в ширину в код без использования явной очереди.
Если вам нужна информация о реализации в ширину с очередью, я предлагаю вам проверить Википедия .