mirror of
https://github.com/Steffo99/appunti-magistrali.git
synced 2024-11-22 18:44:17 +00:00
25 lines
662 B
Markdown
25 lines
662 B
Markdown
#### Breadth-first search (BFS)
|
|
|
|
La _breadth-first search_ è un algoritmo che visita **ogni livello** dell'albero in ordine, dal più basso al più alto.
|
|
|
|
## Funzionamento
|
|
|
|
> 1. __Visita radice__
|
|
> 2. __Visita figli__
|
|
> 3. __Visita nipoti__
|
|
> 4. __Visita pronipoti__
|
|
|
|
Si può implementare con una coda, in cui verranno inseriti i figli del nodo visitato da visitare ed estratti dopo avere completato la visita del livello attuale.
|
|
|
|
## Pseudocodice
|
|
|
|
```python
|
|
def bfs(radice):
|
|
c = Queue()
|
|
c.enqueue(radice)
|
|
while not c.is_empty():
|
|
nodo = c.dequeue()
|
|
print(nodo)
|
|
for figlio in nodo.figli:
|
|
nodo.enqueue(figlio)
|
|
```
|