Esto puede ser muy ingenuo, pero me preguntaba, el contexto de los árboles binarios (simples, ordenados y equilibrados), de todos los tipos transversales:
- profundidad de pre-orden
- profundidad primero en orden
- profundidad de primer pedido
- ancho primero
¿Cuál es la utilidad real de los pre y post orden? Quiero decir, ¿hay algún tipo y / o configuración de árbol binario en el que el recorrido previo y / o posterior al pedido daría (alguna) ventaja (s) sobre los otros dos?
AFAICS, hay ciertos tipos y configuraciones de árboles binarios para los cuales, en orden y amplitud, pueden dar cierta ventaja:
para un árbol binario equilibrado, cualquier recorrido de profundidad primero usará menos espacio de almacenamiento de memoria en comparación con la amplitud primero (por ejemplo, para un árbol binario equilibrado de 6 o 7 nodos, la altura es 2, por lo que cualquier recorrido de profundidad primero necesitará almacenar un máximo de 2 nodos en un momento dado, mientras que el último nivel tiene 3 o 4 nodos, por lo que el recorrido transversal primero necesitaría almacenar hasta 3 o 4 nodos en algún momento). En este caso, el uso del recorrido en orden utiliza la menor cantidad de memoria y visita los nodos en su orden natural.
para un árbol binario no equilibrado, si está cerca del peor escenario de inserción, atravesarlo primero en amplitud usaría menos memoria en comparación con cualquiera de los primeros recorridos en profundidad. Entonces, en este caso, la amplitud ofrece una ventaja. El recorrido en orden tiene nuevamente la ventaja de visitar valores en su orden natural.
Sin embargo, no puedo pensar en una situación en la que antes y después del recorrido darían una ventaja sobre los otros dos.
A + B * C
, que es mucho más fácil de entender para los usuarios normales que cualquier prefijo de orden postfix.