Está en la página 1de 2

Ejercicios Propuestos - Unidad II

Realizar los siguientes ejercicios utilizando como lenguaje JAVA:


 ÁRBOLES BINARIOS
1. Dado los siguientes árboles binarios representados como anidación de
paréntesis:

a. (K(B(A,F(D)),W(M(L,O(P)),Z)))
b. (25(20(10(8)), 23(21)),90(80(62(47(32))),100))

Escriba un programa que muestre los recorridos Preorden, Inorden y


Postorden. Dibuje el correspondiente Árbol binario.

2. Escriba un programa que calcule cuantos nodos tiene un árbol binario, cuál
es su máximo valor y cuál es el promedio de los nodos y que imprima las
hojas de un árbol binario y los nodos internos de un árbol binario.

Nota: Los nodos tienen valores enteros.

3. Realice un método que intercambie los subárboles izquierdo y derecho de


un árbol binario. Es de observar que este intercambio se debe realizar para
todo nodo de árbol.
Ejemplo: Dado el árbol binario del diagrama a), el intercambio de ramas
produce el árbol del diagrama b).

1. A
b) A

B C C B

D E F D
F E

G H
H G

4. Realice dos métodos uno para inserción y eliminación respectivamente en


arboles-B
5. Realice dos métodos uno para inserción y eliminación respectivamente en
arboles-B+
 GRAFOS:
6. Desarrollar un método que reciba un grafo almacenado en una matriz de
adyacencia y lo devuelva almacenado en una lista de adyacencia.
7. Desarrollar un método que reciba un grafo o un dígrafo y devuelva 1 si el
gafo o dígrafo es Euleriano. Se debe devolver 0 de lo contrario.
8. Desarrollar un método que reciba un grafo almacenado de una lista de
adyacencia y devuelva 1 si el grafo es Hamiltoniano. Se debe devolver 0
de lo contrario.
9. Desarrollar una rutina que recorra un grafo en profundidad. La rutina debe
utilizar una pila en lugar de la recursión y adicionalmente debe trabajar el
grafo en una lista de adyacencia.

Muchos Éxitos…

También podría gustarte