Dado un árbol binario, sus hojas son los subárboles que
tienen las dos ramas left y right vacías. Los
nodos internos son todos aquellos nodos que no son hojas.
Implementa la función tree_internal_nodes_equal, que
determina si, en un árbol binario de enteros, los valores de los nodos
internos son todos iguales:
/**
* @brief Determina si todos los valores de los nodos internos son iguales
*
* @param t Un árbol binario de enteros
* @returns `true` si todos los valores de los nodos internos son iguales,
* `false` en caso contrario.
*/
bool tree_internal_nodes_equal(BinTree<int> t);
Los ficheros públicos (icono del gatito) contienen:
main.cc |
el programa principal, con la entrada/salida hecha |
bintree.hh |
la clase
BinTree<T> |
bintree-io.hh |
la entrada/salida de
BinTree<T> |
bintree-inline.hh |
la entrada/salida "inline" de
BinTree<T> |
Makefile |
para compilar con make
cómodamente |
.vscode |
carpeta para compilar y depurar con VSCode |
Hay que implementar tree_internal_nodes_equal en un
fichero .cc nuevo, compilar, y finalmente
enviar solo el fichero con la función.
La entrada empieza con "visual" o "inline" para indicar el formato de los árboles de entrada. Después viene una secuencia de árboles en el formato indicado. (De esto se encarga el programa principal).
Para cada árbol, la salida es true si todos los valores
de los nodos internos son iguales, o false en caso
contrario. (De esto se encarga el programa principal.)
Input
visual
#
8
1
|-- #
'-- 3
5
|-- 5
| |-- 1
| '-- #
'-- 3
7
|-- 7
| |-- #
| '-- 1
'-- 5
|-- 2
'-- 3
6
|-- #
'-- 6
|-- #
'-- 1
7
|-- 9
| |-- #
| '-- 9
| |-- 5
| '-- 5
'-- 9
|-- 3
'-- 9
|-- 10
'-- #
Output
true true true true false true false
Input
inline 8(8(5,),8(5,)) 9(,9(9(,1),9(,3))) 4(4(,2),4(4,)) 10(10(6,),10(,9)) 6(6(4,),6(,0)) 1(1(1(,5),1(,8)),1(1(,7),1(3,))) 9(4(4(,8),4(7,)),) 9(9(6,),2(,7)) 6(6(,6),2(3,)) 3(3(3(,9),3(,4)),3(3(,9),9(,9)))
Output
true true true true true true false false false false