Estoy en el proceso de conversión de función recursiva para una BST a la no recursivo para ayudar a preparar para una entrevista. Hasta el momento me di cuenta de orden previo, a finde, orden posterior, buscar, eliminar, insertar, y convirtiendo el BST a una lista enlazada circular. Estoy teniendo problemas para averiguar cómo utilizar la pila o colas para obtener la altura y de encontrar si se trata de una BST. Algún consejo sería de gran aprecio. No estoy en busca de código, pero la lógica detrás del código.
Pseudocódigo para la implementación no recursiva de la altura del árbol y isBST
Para empezar, un gran trabajo en la preparación para las entrevistas como esta! Espero que uno se divierte jugando con estos algoritmos.
Vamos a comenzar con la tarea de tratar de determinar si el árbol binario es un BST. Una forma de hacer esto es hacer un paseo a finde del árbol y comprobar si los elementos están en el orden establecido. Esto es cierto si y sólo si el árbol es un BST. Como usted ya tiene código para hacer un paseo a finde de los elementos del árbol, usted debe ser capaz de adaptarse fácilmente su código para comprobar si los elementos que salen de la caminata finde están ordenados por no perder de vista el último elemento que viste en la caminata a finde, a continuación, comparar cada elemento generada al elemento anterior. Si los dos están fuera de servicio, el árbol no es un BST.
Para determinar la altura del árbol, una opción sería tomar cualquiera de las búsquedas que has encontrado hasta el momento (pre-pedido, orden posterior, a finde) y realizar un seguimiento de la altura de la pila en cada punto. La idea aquí es que desde su pila siempre hará un seguimiento de la ruta de regreso desde cualquier nodo hasta la raíz, sólo tiene que recorrer el árbol y registrar el más profundo que se haya visto la pila se convierta. Esta profundidad máxima es entonces la altura del árbol.
¡Espero que esto ayude! Y lo mejor de suerte con las entrevistas!
Para encontrar la altura del árbol, se puede usar el [tiempo O (n)] Morris recorrido].
Para comprobar si se trata de una BST válida, hacer un paseo a finde del árbol. Mover los elementos en una matriz. Compruebe si la matriz está ordenada o no se valida la BST.













