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 smile.gif

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.