Implementa la función:
/**
* @brief Busca el entero de un `pair<int, string>` en un árbol binario y
* devuelve el `string` asociado a dicho entero.
*
* @param t Árbol binario de parejas de enteros y `string`s.
* @param x Valor a buscar.
* @param trobat Parámetro de salida con el `string` asociado a `x`.
*
* @returns `true` si `x` es el `first` de algún par en `t`,
* `false` en caso contrario.
*
* @post Si el resultado es `true`, `trobat` contiene el `string` asociado a `x`.
*/
bool find_first(BinTree<pair<int, string>> t, int x, string& trobat);
Los ficheros públicos (icono del gatito) contienen:
bintree.hh |
la clase BinTree |
bintree-io.hh |
la entrada/salida de BinTree
(incluye operator>> y operator<<
para pair) |
main.cc |
el programa principal |
También hay un Makefile y el directorio
.vscode que tiene la configuración para compilar y depurar
con VSCode.
Hay que implementar find_first en un fichero
.cc nuevo, compilar (está preparado para poder
compilar y depurar con VSCode), y finalmente enviar solo el
fichero con la función.
La solución debe ser eficiente: hay que abandonar la búsqueda tan pronto como se encuentre el valor buscado.
La entrada contiene un árbol binario de parejas
pair<int, string> en formato visual, seguido de una
línea vacía, y a continuación una secuencia de enteros a buscar.
Para cada entero buscado, si se encuentra en el árbol, se escribe el
entero y el string asociado. Si no se encuentra, se escribe
un mensaje indicándolo.
Input
1 alpha |-- 2 bravo | |-- 10 juliet | '-- 8 hotel '-- 3 charlie 1 2 3 4 5 6 7 8 9 10
Output
1 alpha 2 bravo 3 charlie No s'ha trobat 4 No s'ha trobat 5 No s'ha trobat 6 No s'ha trobat 7 8 hotel No s'ha trobat 9 10 juliet