![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 12 Pomógł: 0 Dołączył: 14.09.2010 Ostrzeżenie: (0%) ![]() ![]() |
Znacie jakiś sposób na zapytanie zamieniające kolejność dwóch gałęzi drzewa (przesuń wyżej/niżej) w metodzie Modified Preorder Tree Traversal bez użycia tabel tymczasowych?
OK, pytanie chyba nieaktualne. Nie mogłem nigdzie znaleźć dobrej metody, ale chyba udało mi się to rozwiązać. Dla porządku - robię to w następujących krokach: 1. Wczytuję dane o pozycjach left i right dla rodzica gałęzi wyższej i niższej. 2. Uaktualniam wartości right dla całej gałęzi niższej odejmując różnicę między aktualnym right rodzica a right rodzica gałęzi wyższej. 3. Uaktualniam wartości left i right dla gałęzi wyższej dodając do obu różnicę między left rodzica gałęzi wyższej a aktualnym left rodzica tej gałęzi. 4. Uaktualniam wartości left dla gałęzi niższej odejmując różnicę między aktualnym left rodzica a poprzednim left rodzica gałęzi wyższej. Tutaj stosuję warunek zmiany wartości tylko dla pól, dla których right < left, czyli dla częściowo przesuniętej w punkcie 1. gałęzi niższej. Voila. Mam nadzieję, że to działa. Pewnie też Ameryki nie odkryłem ![]() Jednak popełniłem błąd. W wolnej chwili napiszę ostateczne rozwiązanie, chyba że ktoś ubiegnie moje mądrości i wklei link z jakims opracowaniem tematu. |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 14.08.2025 - 03:34 |