jak wdrożyć BST Inorder przechodzenie?

głosy
0

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.

Utwórz 18/10/2011 o 06:36
źródło użytkownik
W innych językach...                            


2 odpowiedzi

głosy
0

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.

Odpowiedział 18/10/2011 o 06:46
źródło użytkownik

głosy
0

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 ...)

Odpowiedział 21/10/2011 o 07:54
źródło użytkownik

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more