Dado un árbol binario de búsqueda (BST) de enteros, implementa una función que busque si un valor se encuentra en el árbol.
/**
* @brief Busca un valor en un árbol binario de búsqueda.
*
* @param t Un árbol binario de búsqueda.
* @param x Valor a buscar.
* @returns `true` si `x` se encuentra en el árbol `t`,
* `false` en caso contrario.
*/
bool bst_cerca(BinTree<int> t, int x);
La entrada consiste en una secuencia de árboles binarios de búsqueda de enteros, en formato visual, cada uno seguido de una secuencia de enteros a buscar.
Para cada árbol, y para cada valor a buscar, una línea con el valor y
true o false según si el valor se encuentra en
el árbol o no.
Los ficheros públicos (icono del gatito) son: la clase
BinTree (fichero bintree.hh), la
entrada/salida de BinTree (bintree-io.hh) y el
programa principal. También hay un Makefile y el directorio
.vscode con la configuración para compilar y depurar con
VSCode.
Debes implementar bst_cerca 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.
En este problema, la eficiencia es importante.
Input
visual
10
|-- 5
| |-- 2
| '-- 7
'-- 15
|-- 12
'-- 20
1 2 5 7 10 12 15 20 3 8 25
Output
1 false 2 true 5 true 7 true 10 true 12 true 15 true 20 true 3 false 8 false 25 false