BFS تستكشف رسم بياني مستوى تلو الآخر، وتزور جميع الجيران قبل الانتقال إلى أعمق. وتستخدم queue وتجد أقصر مسار (أقل عدد حواف) في الرسوم البيانية غير الموزونة.
الفكرة
ابدأ من مصدر، أدرجها في queue، ثم كرر إزالة عقدة من queue، قم بزيارة جيرانها غير المزارين، وأدرجهم في queue. مجموعة visited تمنع إعادة الزيارة.
مثال
collections deque
():
visited = {start}
queue = deque([start])
order = []
queue:
node = queue.popleft()
order.append(node)
nbr graph[node]:
nbr visited:
visited.add(nbr)
queue.append(nbr)
order
graph = {: [, ], : [], : [], : []}
bfs(graph, )
