mirror of
https://github.com/Steffo99/appunti-magistrali.git
synced 2024-11-22 18:44:17 +00:00
26 lines
662 B
Markdown
26 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)
|
||
|
```
|