[C++] Tworzenie drzewa AVL

koniczynka_92
Użytkownik
Użytkownik
Posty: 6
Rejestracja: 22 gru 2012, o 22:00
Płeć: Kobieta
Podziękował: 2 razy

[C++] Tworzenie drzewa AVL

Post autor: koniczynka_92 »

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.
matfka
Użytkownik
Użytkownik
Posty: 181
Rejestracja: 19 sty 2013, o 11:45
Płeć: Kobieta
Lokalizacja: polska
Podziękował: 31 razy
Pomógł: 3 razy

[C++] Tworzenie drzewa AVL

Post autor: matfka »

Wiesz już może jak to zrobić?
Awatar użytkownika
Dasio11
Moderator
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

Post autor: Dasio11 »

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;
}
ODPOWIEDZ