To może być bardzo naiwne, ale zastanawiałem się, czy to w kontekście drzew binarnych (zwykłych, posortowanych i zrównoważonych) wszystkich rodzajów przechodzenia:
- pierwsze zamówienie w głębokości
- najpierw głębokość w kolejności
- głębokość pierwszego zamówienia po zamówieniu
- szerokość pierwsza
jaka jest rzeczywista użyteczność przedsprzedażowa i po zamówieniu? Mam na myśli, czy istnieje jakiś typ i / lub konfiguracja drzewa binarnego, w których przechodzenie przed i / lub po zamówieniu dałoby (pewną) przewagę nad pozostałymi dwoma?
AFAICS, istnieją pewne typy i konfiguracja drzew binarnych, dla których kolejność i szerokość mogą dać pewną przewagę:
dla zrównoważonego drzewa binarnego każde przejście w pierwszej głębokości zużyje mniej miejsca w pamięci w porównaniu do pierwszego (np. w przypadku zrównoważonego drzewa binarnego z 6 lub 7 węzłami wysokość wynosi 2, więc każde przejście w pierwszej głębokości będzie musiało pomieścić maksymalnie 2 węzły w danym momencie, podczas gdy ostatni poziom ma 3 lub 4 węzły, więc przejście przez pierwszą szerokość wymagałoby przechowywania do 3 lub 4 węzłów w pewnym momencie). W takim przypadku korzystanie z przechodzenia w kolejności zużywa najmniej pamięci i odwiedza węzły w ich naturalnej kolejności.
w przypadku niezrównoważonego drzewa binarnego, jeśli jest ono bliskie najgorszemu scenariuszowi wstawiania, przejście przez szerokość w pierwszej kolejności zużyłoby mniej pamięci w porównaniu do dowolnego przejścia w głębokości pierwszego. Tak więc w tym przypadku pierwsza szerokość jest zaletą. Podróż w kolejności ma tę zaletę, że odwiedza wartości w ich naturalnym porządku.
Nie mogę jednak pomyśleć o sytuacji, w której przed i po przejściu dałoby przewagę nad pozostałymi dwoma.
A + B * C
, co jest łatwiejsze do zrozumienia dla zwykłych użytkowników niż którykolwiek z prefiksów postfiksów.