La classe Algorithms è stata così tanto tempo fa e non ricordo il nome dell'algoritmo per bilanciare un grafico aciclico.
Iniziamo con un grafico simile al seguente:
1
|
2
|
3
/ \
4 7
/ \ |
5 6 8
La soluzione per bilanciare questo sarebbe:
2 3
/ \ / | \
1 3 2 4 7
/ \ => / / \ |
4 7 1 5 6 8
/ \ |
5 6 8
Ruota finché non hai un nodo radice il cui ramo ha la stessa lunghezza e il tuo albero ha un'altezza minima.
Quale algoritmo sto descrivendo?