Mam następujące pytanie, ale nie mam na to odpowiedzi. Byłbym wdzięczny, jeśli moja metoda jest poprawna:
P: Podczas wyszukiwania wartości klucza 60 w drzewie wyszukiwania binarnego węzły zawierające wartości klucza 10, 20, 40, 50, 70, 80, 90 są przemieszczane, niekoniecznie w podanej kolejności. Ile jest możliwych różnych zamówień, w których te kluczowe wartości mogą wystąpić na ścieżce wyszukiwania z węzła głównego zawierającego wartość 60?
(A) 35 (B) 64 (C) 128 (D) 5040
Z tego pytania rozumiem, że wszystkie podane węzły muszą być uwzględnione w przejściu i ostatecznie musimy dotrzeć do klucza 60. Na przykład jedna taka kombinacja to:
10, 20, 40, 50, 90, 80, 70, 60.
Ponieważ musimy przejść przez wszystkie podane powyżej węzły, musimy zacząć od 10 lub 90. Jeśli zaczniemy od 20, nie osiągniemy 10 (od 60> 20 i przejdziemy prawe poddrzewo 20)
Podobnie, nie możemy zacząć od 80, ponieważ nie będziemy w stanie osiągnąć 90, ponieważ od 80> 60 przejdziemy do lewego sub-drzewa 80 i tym samym nie osiągniemy 90.
Weźmy 10. Pozostałe węzły to 20, 40, 50, 70, 80, 90. Następny węzeł może mieć wartość 20 lub 90. Nie możemy wziąć innych węzłów z tego samego wcześniej wspomnianego powodu.
Jeśli rozważymy podobnie, na każdym poziomie mamy dwie możliwości. Ponieważ jest 7 węzłów, dwie opcje dla pierwszych 6 i brak wyboru dla ostatniej. Więc są całkowicie
2 6 64 permutacje = =
Czy to poprawna odpowiedź?
Jeśli nie, jakie jest lepsze podejście?
Chciałbym uogólnić. Jeśli podano węzłów, wówczas całkowita możliwa ścieżka wyszukiwania wynosiłaby2 n - 1