Drzewo AVL

0

Mam problem z usuwaniem węzłów z drzewa AVL.

Dajmy sobie taką sytuację:
/
A
/
B ...
/ \
E C
/
D

Chcę teraz usunąć węzeł A. Z tergo co przeczytałem, to w takiej sytuacji trzeba go zastąpić jego największym poprzednikiem, czyli C. Jednak C ma lewe poddrzewo, które przecież nie może wyparować :/

0

To jest analogiczna sytuacja:

  • skoro usuwasz A, to chcesz tam wstawic C
  • ale to oznacza, ze chcesz tez usunac C z jego dotychczasowego miejsca (zeby przeniesc je gdzies indziej) - czyli rozpatrz przypadek usuwania C

Tak mi sie wydaje, nie dam za to glowy ;)

0

http://webpages.ull.es/users/jriera/Docencia/AVL/AVL%20tree%20applet.htm
a tutaj podobna zabawka ale z szerszymi objaśnieniami:
http://people.ksp.sk/~kuko/bak/
;)

A w twoim przypadku: nie ma problemy, bo node na który zamieniasz (poprzednik / następnik) ma najwyzej 1 syna i możesz tego syna przypiąć do dawnego parenta poprzednika/następnika.

1 użytkowników online, w tym zalogowanych: 0, gości: 1