Mam problem z zadaniem :
Podaj algorytm takiego uzupełnienia n-elementowej tablicy A wszystkimi liczbami ze zbioru Z = {1,2,...,n}, aby startując od początkowo pustego drzewa, kolejno wykonywane operacje wstaw_do_BST(t) wstawiania węzła o kluczu t, dla i=0,1,...,n-1, utworzyły drzewo BST będące jednocześnie drzewem AVL (bez potrzeby wykonywania rotacji).
Bardzo proszę o pomoc w rozwiązaniu.
[C++] Tworzenie drzewa AVL
-
- Użytkownik
- Posty: 6
- Rejestracja: 22 gru 2012, o 22:00
- Płeć: Kobieta
- Podziękował: 2 razy
- Dasio11
- Moderator
- Posty: 10225
- Rejestracja: 21 kwie 2009, o 19:04
- Płeć: Mężczyzna
- Lokalizacja: Wrocław
- Podziękował: 40 razy
- Pomógł: 2362 razy
[C++] Tworzenie drzewa AVL
Wydaje mi się, że taki algorytm zadziała:
Kod: Zaznacz cały
int j = 0;
int m = 1;
while( 2*m <= n ) m *= 2;
while( m > 0 )
{
for( int i = 1; m*i <= n; i += 2 ) t[j++] = m*i;
m /= 2;
}