Ejercicios de Árboles
Segundo semestre del 2021
Prof. Ibar Ramirez Varas
1. Escribir una función no recursiva que reciba un valor entero y la referencia al nodo raíz del
árbol binario de búsqueda, que almacena valores enteros. Busque el valor en el árbol y si se
encuentra que entregue el camino de búsqueda en una lista, incluyendo todos los nodos hasta
llegar al valor buscado y si no se encuentra retornar lista vacía.
2. Desarrolle una función que permita el recorrido por nivel de un árbol binario.
3. Escriba un método de la clase árbol que realice el espejo del objeto árbol. El espejo de un
árbol es otro árbol que es el mismo que el que se ve si se reflejara en un espejo, tal y como se
indica en el siguiente ejemplo:
4. Escribir una función miembro de la clase árbol que nos cuente el número de nodos que tiene.
5. Añadir a la clase árbol un método que calcule el número de hojas del árbol.
6. Añadir a la clase árbol una función miembro que reciba como parámetro un número natural n
que indique un nivel, y muestro todos los nodos del árbol que se encuentren en ese nivel.
7. Construir una función miembro de la clase árbol para escribir todos los nodos de un árbol
binario de búsqueda cuyo campo clave sea mayor que un valor dado.
8. Escribir un programa que lea un texto de longitud indeterminada desde un archivo y que
produzca como resultado la lista de todas las palabras diferentes contenidas en el texto, así
como su frecuencia de aparición.
9. Se dispone de un árbol binario de elementos de tipo entero. Escribir funciones que calculen:
a) La suma de sus elementos.
b) La suma de sus elementos que son múltiplos de 3.
10. Escribir una función booleana IDENTICOS que permita decir si dos árboles binarios son iguales.
11. Crear un archivo de datos en el que cada línea contenga la siguiente información:
Nombre 30 caracteres
Número de la Seguridad Social 10 caracteres
Dirección 24 caracteres
Escribir un programa que lea cada registro de datos del archivo y los almacenes en un árbol,
de modo que cuando el árbol se recorra en inorden los números de la Seguridad Social se
almacenen en orden ascendente.
Imprimir una cabecera “DATOS DE EMPLEADOS ORDENADOS
DE ACUERDO AL NUMERO DE LA SEGURIDAD SOCIAL” y a continuación imprimir los datos del
árbol con el formato Columnas:
1-10 Número de la Seguridad Social
20-50 Nombre
55-79 Dirección
12. Dados dos árboles binarios de búsqueda indicar mediante un programa si los árboles tienen o
no elementos comunes.
13. Escribir un programa que lea un texto de longitud indeterminada y que produzca como
resultado la lista de todas las palabras diferentes contenidas en el texto, así como su
frecuencia de aparición. Hacer uso de la estructura árbol binario de búsqueda, cada nodo del
árbol que tenga una palabra y su frecuencia.
14. (Encuentre las hojas) Agregue un método a la clase BST para retornar el número de hojas del
árbol
public int getNumberOfLeaves()
15. (Encuentre el número de no hojas) Agregue un método a la clase BST y retorne el número de
nodos que no son hojas
public int getNumberofNonLeaves()
16. Recorra por nivel los nodos de un árbol general.
17. Escribe una función que reciba un árbol binario y entrega una copia del mismo. Suponiendo
que el árbol almacena valores enteros
18. Escribe una función booleanas qué, dado un árbol binario y un camino expresado en forma de
lista, determine si existe dicho camino en el árbol, teniendo en cuenta que el camino debe
comenzar necesariamente en la raíz. Por ejemplo, para el árbol que sigue existen los caminos
m-q-t y m-d, pero no existen los caminos r-q-t ni d-k.
Lista ={m,q,s} boolean esCamino(list, ,p)
1 4
3 8