Właściwie to, co chcę wiedzieć, nie jest jak zaimplementować algorytm przejścia na zamówienie dla BST ale wdrożyć go tylko za pomocą insercji, delecji i pre-order algorytmy przemierzania dla BST.
Można przypuszczać, że podane są implementacje dla standardowych algorytmów BST do wstawiania, usuwania i pre-order przechodzenie.
jak wdrożyć BST Inorder przechodzenie?
Hmmm ... Powiedzmy mamy + u nasady i 1 w lewym węźle i 2 w prawym węźle. Pre-order będzie + 1 2w porządku będzie 1 + 2.. różnicą jest to, że 1 i 2 zostały zamienione, więc jeśli masz wstawiania i usuwania można rekurencyjnie zamienić każdą wartość węzła głównego z lewej wartości węzła, a następnie za pomocą pre-order przemierzać drzewo, które będzie zwracać spowoduje przechodzenie inorder.
Nie jestem pewien, czy to jest droga, ale mam nadzieję, że to nie pomaga.
Chyba znalazłem rozwiązanie. :)
mamy pre-order przemierzania wstawiania i usuwania metod.
Zakładamy, że daje nam BST.
co możemy zrobić, to zapewniamy pre-order sposobu przejścia z danym BST. od pre-order przechodzenie zawsze iść do węzła nadrzędnego pierwsze, możemy usunąć i wstawić każdy korzeń (bo korzeń jest pierwszym rodzicem spotykamy) węzeł rekurencyjnie aż drzewo po lewej sub korzenia jest null.
teraz rozpocząć usuwanie korzeni, dopóki nie ma węzłów left.Put tych usuniętych węzłów w tablicy lub gdziekolwiek chcesz. Dostaniesz posortowanych zbiór węzłów. (Czyli węzły zostaną usunięte w posortowanej order.the najmniejszy pierwszy i tak dalej ...)













