Estrutura de dados - amplitude primeiro transversal
O algoritmo Breadth First Search (BFS) percorre um gráfico em um movimento de largura e usa uma fila para lembrar de obter o próximo vértice para iniciar uma pesquisa, quando um beco sem saída ocorre em qualquer iteração.
Como no exemplo dado acima, o algoritmo BFS atravessa de A para B para E para F primeiro e depois para C e G por último para D. Ele emprega as seguintes regras.
Rule 1- Visite o vértice não visitado adjacente. Marque como visitado. Mostre-o. Insira-o em uma fila.
Rule 2 - Se nenhum vértice adjacente for encontrado, remova o primeiro vértice da fila.
Rule 3 - Repita a Regra 1 e a Regra 2 até que a fila esteja vazia.
Degrau | Travessia | Descrição |
---|---|---|
1 |
|
Inicialize a fila. |
2 |
|
Começamos visitando S (nó inicial) e marque-o como visitado. |
3 |
|
Em seguida, vemos um nó adjacente não visitado de S. Neste exemplo, temos três nós, mas em ordem alfabética, escolhemosA, marque-o como visitado e coloque-o na fila. |
4 |
|
Em seguida, o nó adjacente não visitado de S é B. Nós o marcamos como visitado e o colocamos na fila. |
5 |
|
Em seguida, o nó adjacente não visitado de S é C. Nós o marcamos como visitado e o colocamos na fila. |
6 |
|
Agora, Sé deixado sem nós adjacentes não visitados. Então, retiramos da fila e encontramosA. |
7 |
|
De A temos Dcomo nó adjacente não visitado. Nós o marcamos como visitado e o colocamos na fila. |
Nesta fase, não ficamos sem nós não marcados (não visitados). Mas, de acordo com o algoritmo, continuamos retirando a fila para obter todos os nós não visitados. Quando a fila é esvaziada, o programa acabou.
A implementação deste algoritmo em linguagem de programação C pode ser vista aqui .