Ja w procesie konwersji funkcji rekurencyjnej na BST do nie rekursywnego w celu przygotowania się do rozmowy. Do tej pory ja zorientowali się zamĂłwienia przedpremierowego, Inorder, postorder, wyszukiwanie, usuwanie, wstawianie, i przekształcenie BST do kołowego połączonej listy. Mam problemy zastanawianie się, jak używać stosu lub kolejki, aby uzyskać wysokość i znaleźć jeśli jest to BST. Wszelkie wskazówki będą bardzo mile widziane. Ja nie szukam kodu, ale logiki kodu.
Pseudokod dla non-rekurencyjne realizacji wysokości drzewa i isBST
Na początek wielkie zadanie przygotowania do wywiadów takich jak ten! Mam nadzieję, że dobrze się bawisz zabawy z tych algorytmów.
Zacznijmy zadanie próbuje ustalić, czy drzewo binarne jest BST. Jednym ze sposobów osiągnięcia tego celu jest zrobić spacer Inorder drzewa i sprawdzić, czy elementy są w posortowanych. To będzie prawdziwe wtedy i tylko wtedy, gdy drzewo jest BST. Skoro masz już kod, aby zrobić spacer Inorder elementów drzewa, powinieneś być w stanie łatwo dostosować swój kod, aby sprawdzić, czy elementy, które wychodzą na spacer Inorder są klasyfikowane przez śledzenie ostatniego elementu, który widział w spacer inorder, a następnie porównując każdy element wygenerowane do poprzedniego elementu. Jeśli te dwie rzeczy są w porządku, drzewo nie jest BST.
Aby określić wysokość drzewa, jednym rozwiązaniem byłoby podjąć jakiekolwiek z poszukiwań, które wpadliśmy tej pory (preorder, postorder, Inorder) i śledzić wysokości stosu w każdym punkcie. Chodzi o to, że skoro twój stack będzie zawsze śledzić ścieżkę z dowolnego węzła z powrotem do korzeni, można po prostu iść na drzewo i nagrać najgłębszy że kiedykolwiek widział stos stać. Ta maksymalna głębokość wynosi wówczas wysokość drzewa.
Mam nadzieję że to pomoże! I powodzenia z wywiadów!
Aby znaleźć wysokość drzewa, można użyć [czas O (n)] Morris przejścia].
Aby sprawdzić, czy jest to prawidłowy BST, zrobić spacer Inorder drzewa. Przemieszczania tych elementów do tablicy. Sprawdź, czy tablica jest posortowana lub nie do sprawdzania poprawności BST.













