Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Ingeniería de
Software
Alumno:
Curso:
Estructura de Datos I
Profesor:
2019
Ejercicios:
1) Explicar por qué cada una de las siguientes estructuras no es un árbol binario:
Para el caso (a) no puede ser considerado árbol binario debido a que su grado es 3
(debido al subárbol B que posee 3 nodos hijos).
Para el caso (b) no puede ser considerado árbol binario puesto que en el subárbol C
los nodos D y E apuntan a un mismo nodo hijo, generando un grafo.
Para el caso (c) no pude ni siquiera ser considerado árbol debido a que este es un
grafo.
a) ¿Cuál es su altura?
La altura de un árbol es el numero maximo de niveles, el árbol tiene 4 niveles, su
altura es 4.
i. M, Y, T, E, R
M Enorden: E, M, R, T, Y
Preorden: M, E, Y, T, R
E Y
Postorden: E, R, T, Y, M
ii. T, Y, M, E, R
Enorden: E, M, R, T, Y
T
Preorden: T, M, E, R, Y
M Y
Postorden: E, R, M, Y, T
E R
iii. R, E, M, Y, T
R Enorden: E, M, R, T, Y
Preorden: R, E, M, Y, T
E Y
Postorden: M, E, T, Y, R
M T
iv. C, O, R, N, F, L, A, K, E, S
V Enorden: A, C, E, F, K, L, N, O, R, S
C
Preorden: C, A, O, N, F, E, L, K, R, S
A O Postorden: A, E, K, L, F, N, S, R, O, C
N R
F S
E L
RECORRIDOS:
o NDI: P, R, V, U, X, Q, T, S, W
o DNI: V, R, X, U, P, T, Q, S, W
o DIN: V, X, U, R, T, W, S, Q, P
5) Dibujar los árboles binarios que representan las siguientes expresiones:
a. (A+B) / (C-D)
+ -
A B C D
b. A+B+C/D
A +
B +
C /
c. A- (B-(C-D) / (E+F))
A /
- +
B - E F
C D
d. (A+B) * ((C+D) / (E+F))
+ /
A B + +
C D E F
e. (A-B) / ((C*D)-(E/F))
- -
A B *
C D E F
6) El recorrido preorden de un cierto árbol binario produce ADFGHKLPQRWZ y el
recorrido enorden produce GFHKDLAWRQPZ. Dibujar el árbol binario.
Preorden: N, I, D Enorden: I, N, D
ADFGHKLPQRWZ GFHKDL -- A -- WRQPZ.
G
G H
WRQPZ(Enorden): I, N, D
PQRWZ(Preorden): N, I, D
(Por preorden)
Pnodo principal del subárbol izquierdo A
(Por enorden):
WRQ---P---Z
WRQvan a la izquierda de P D P
(Por preorden):
Q es padre de W y R
(Por enorden): F L Q Z
W va a la izquierda
R es padre de W (no puede ser
hermano debido a que aparecería G H R
antes la Q)
Z hijo derecho de P
K W
7) Escribir un método recursivo que cuente las hojas de un árbol binario :
if(subarbol==null)
return 0;
else
return contar_hojas (subarbol.izq) + contar_hojas (subarbol.der);
}
if (subarbol != null) {
if (nivel == 0)
return cantNodoNivelIzq +cantNodoNivelDer;
9) Escribir un método que tome un árbol como entrada y devuelva el numero de hijos del
árbol.
11) Se dispone de un árbol binario de elementos tipo entero. Escribir métodos que
calculen:
if (subarbol == null)
return 0;
else
return subarbol.dato +suma_nodos (subarbol.izq) +
suma_nodos(subarbol.der);
if (subarbol.dato mod 3 != 0)
return 0 + suma_multitres (subarbol.izq) +
suma_multitres (subarbol.der);
else
return subarbol.dato +suma_multitres (subarbol.izq) +
suma_multitres(subarbol.der);
}
12) Diseñar un método iterativo que encuentre el número de nodos hoja en un árbol
binario.
NodoBinario<T> aux=raiz;
Int cont=0;
if(!pila2.empty() &&
!pila1.empty() && aux==null) public int numeroDatos () {
{ int cont=0;
return 1; Nodo aux=inicio;
} While (aux != null)
{
if(aux != null ){ System.out.println(aux.valor +
pila1.apilar(aux); “ ,”);
aux=aux.izq; aux=aux.sig;
} cont++;
}
else if (!pila1.empty()){ return cont;
}
aux=pila1.top ();
pila1.desapilar ();
aux=aux.der;
}
else if (aux.der==null &&
aux.izq==null){
pila2.apilar(aux);
}
System.out.println(pila2.numeroDatos());
}
13) En un árbol de búsqueda cuyo campo clave es de tipo entero, escribir un método que
devuelva el numero de nodos cuya clave se encuentra en el rango [x1, x2].
if (subarbol == null)
return;
else
return 0 + nodos_rango (subarbol.izq) + nodos_rango (subarbol.der);
14) Diseñar un método que visite los nodos del árbol por niveles; primero el nivel 0,
después los nodos del nivel 1, y del nivel 2 y así hasta el ultimo nivel.
if (subarbol != null) {
q.encolar( subarbol);
subarbol= q.desencolar( );
System.out.println(subarbol.dato +” ”);
if (subarbol.izq ==null) {
q.encolar(subarbol.izq);
}
if (subarbol.der ==null) {
q.encolar (subarbol.der);
}
}