Búsqueda en un árbol binario de parejas S70309


Statement
 

pdf   zip   tar

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);

Observación

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.

Entrada

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.

Salida

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.

Public test cases
  • 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
    
  • Information
    Author
    Pau Fernández
    Language
    Spanish
    Translator
    Pau Fernández
    Original language
    Catalan
    Other languages
    Catalan
    Official solutions
    C++
    User solutions
    C++