Recordad que una hoja de un árbol es un nodo sin ningún sucesor. Un camino dentro de un árbol es una sucesión de nodos que van de la raíz a una hoja.
Dado un árbol binario a de elementos de cualquier tipo, definimos el camino preferente del árbol a de la siguiente manera: si a esta vacío entonces el camino preferente de a también esta vacío; en caso contrario, el camino preferente de a lo forman el elemento raíz de a seguido del camino preferente del hijo de a que tenga más elementos. Si a tiene dos hijos no vacíos con el mismo numero de elementos se elige el camino preferente del hijo izquierdo.
Queremos una operación que nos permita saber cual es el camino preferente de un árbol de enteros, representando este camino con una pila de enteros, ordenada de forma que el primer elemento del camino (si existe) este en la cima de la pila. Utilizad la siguiente especificación:
Ejemplo: considerad los dos árboles siguientes
Entrada
La entrada es un árbol de enteros.
Salida
La salida es una pila con el camino preferente. La raiz del arbol esta en la cima de la pila.
Observación
Tan solo se debe enviar un fichero que contenga la función con la cabecera del enunciado y cualquier otra función auxiliar que creais conveniente, sin la función main. Añadid también los includes de las clases Arbre i stack mediante
#include "Arbre.hh"
#include <stack>