Banco de preguntas para tercer departamental (ARBOLES)
Banco de preguntas para tercer departamental (ARBOLES)
Banco de preguntas para tercer departamental (ARBOLES)
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
Capitulo 5. Arboles<br />
1. Al recorrer el siguiente árbol en ____________ se visitan más nodos <strong>para</strong> llegar al número 38. Justifique<br />
su respuesta mostrando cada uno <strong>de</strong> los recorridos.<br />
2. Dado el siguiente árbol AVL<br />
3<br />
&<br />
+<br />
$<br />
= *<br />
M<br />
Tipo <strong>de</strong> Recorrido Recorrido<br />
A) PREORDEN<br />
B) INORDEN<br />
C) POSTORDEN<br />
D) NIVELES<br />
i) ¿Cuál <strong>de</strong> las siguientes operaciones no provoca que en el árbol se realicen rotaciones?<br />
a) Insertar un valor menor al símbolo Y y mayor al símbolo - .<br />
b) Eliminar el símbolo <strong>de</strong>l nodo raíz<br />
c) Insertar un valor mayor al <strong>de</strong>l símbolo $ y menor al símbolo M.<br />
d) Eliminar el nodo con el símbolo L<br />
e) Eliminar el nodo con el símbolo Y<br />
ii) ¿Qué tipo <strong>de</strong> rotación ocurrirá al insertar un elemento que es mayor al símbolo / y menor a L ?<br />
X<br />
R O<br />
? /<br />
W<br />
G L<br />
-<br />
Y
3. Analiza el siguiente algoritmo e indica que regresa: _____________<br />
int funcion(Nodo raiz, Nodo x) {<br />
if(raiz == null ) return 0;<br />
if(x.clave == raiz.clave) return 0;<br />
else<br />
if(x.clave < raiz.clave) return funcion (raiz.izq, x) +<br />
1;<br />
return funcion (raiz.<strong>de</strong>r, x) + 1;<br />
}<br />
A) El número <strong>de</strong> ocurrencias <strong>de</strong> un nodo<br />
B) Altura <strong>de</strong>l árbol<br />
C) El nodo conteniendo una <strong>de</strong>terminada clave<br />
D) Profundidad <strong>de</strong> un nodo<br />
4. Crear un árbol B <strong>de</strong> dimensión 2 con los siguientes datos: 50,30,20,10,5,80,34,14,12,23,76<br />
5. Se <strong>de</strong>fine por frontera <strong>de</strong> un árbol binario, la secuencia formada por los elementos almacenados en las<br />
hojas <strong>de</strong> un árbol binario, tomados <strong>de</strong> izquierda a <strong>de</strong>recha. Escribe un método que dado un árbol binario y<br />
una lista vacía pasados como parámetros, <strong>de</strong>vuelva en dicha lista la frontera <strong>de</strong>l árbol.<br />
6. Para el siguiente árbol binario, indique cuál o cuáles <strong>de</strong> los siguientes recorridos son correctos: Don<strong>de</strong><br />
“converso” significa que primero se recorre el subárbol <strong>de</strong>recho y <strong>de</strong>spués el izquierdo, es <strong>de</strong>cir al<br />
contrario <strong>de</strong> los recorridos normales.<br />
3<br />
*<br />
&<br />
R<br />
9 X<br />
A<br />
#<br />
^<br />
$<br />
+<br />
a) Preor<strong>de</strong>n converso: A $ # + ^ * R 3 & 9 X<br />
b) Postor<strong>de</strong>n converso: ^ + # $ R X 9 3 & * A<br />
c) Inor<strong>de</strong>n converso: $ + ^ # A R * X & 9 3<br />
d) Todos los anteriores<br />
e) Ninguno <strong>de</strong> los anteriores<br />
7. Dado el siguiente árbol B <strong>de</strong> or<strong>de</strong>n 2: Muestre en un esquema el árbol resultante, <strong>de</strong>spués <strong>de</strong> insertar el<br />
dato 49<br />
42<br />
30 38 50 56 63 70<br />
10 20 25 32 34 40 41 44 46 47 48 52 54 58 60 65 69 71 72 73<br />
5.
8. Para el siguiente árbol AVL. Indique en cada recuadro qué tipo <strong>de</strong> rotaciones provoca la inserción <strong>de</strong><br />
nuevos datos, suponiendo en cada caso el árbol original. (OK, RSI, RSD, RDI, RDD)<br />
9. Rellene los huecos en las siguientes afirmaciones:<br />
a) Los árboles que tienen a los mas dos hijos se llaman ___________________________________<br />
b) Los nodos que no tienen hijos se llaman _______________________<br />
c) Todos los <strong>de</strong>scendientes por la <strong>de</strong>recha <strong>de</strong> un nodo forman un ___________________________<br />
d) A la distancia <strong>de</strong>s<strong>de</strong> la raíz se llama _____________________________<br />
e) Los árboles que cumplen el hecho <strong>de</strong> que <strong>para</strong> cualquier nodo la diferencia entre las alturas <strong>de</strong> sus<br />
subárboles no exce<strong>de</strong> una unidad, se llaman: ____________________________________<br />
10. ¿Qué <strong>de</strong>splegará en pantalla la ejecución <strong>de</strong>l modulo misterio, si se le envía como entrada el árbol<br />
que se muestra? Seleccione el inciso correcto.<br />
M<br />
7<br />
10<br />
17<br />
*<br />
C<br />
15<br />
+<br />
U<br />
20<br />
8<br />
Z<br />
R E<br />
5<br />
30<br />
18 25 43<br />
P<br />
50<br />
40 55<br />
45<br />
52 60<br />
70<br />
66<br />
80<br />
void Misterio(Nodo Raiz)<br />
{ Pila P; Cola C; Nodo X;<br />
X=Raiz;<br />
If (X!=null)<br />
{ C.Insertar(X);<br />
While (C.Extraer(X))<br />
{ P.push(X);<br />
If (X.<strong>de</strong>r!=null) C.Insertar(X.<strong>de</strong>r);<br />
If (X.izq!=null) C.Insertar(X.izq);<br />
}<br />
While( P.pop(X)) System.out.println(X,info);<br />
}<br />
}<br />
a) U * Z M 8 P R E + C 5<br />
b) 5 C + E R P 8 M Z * U<br />
c) C 5 + R E M 8 P * Z U<br />
d) U Z * P 8 M E R + 5 C<br />
e) U * M R + C 5 Z 8 P E<br />
90
11. Dado un árbol B <strong>de</strong> or<strong>de</strong>n 3, ¿Cuántos hijos por nivel pue<strong>de</strong> tener ? ________________<br />
12. Genera el árbol AVL <strong>de</strong> la siguiente secuencia <strong>de</strong> datos [ 40, 10, 35 ,60, 20, 75, 90, 5, 1]. Redibuja<br />
el árbol en cada inserción, indicando cuando corresponda, el tipo <strong>de</strong> rotación efectuada y el dato<br />
insertado.<br />
13. Para cada uno <strong>de</strong> los siguientes incisos, dados los recorridos, construya el árbol binario<br />
correspondiente:<br />
a) Inor<strong>de</strong>n: ? / - X + % * # $ & 3 ∑ ¿ @<br />
Postor<strong>de</strong>n: ? - / + X % * & ∑ 3 ¿ $ @ #<br />
b) Preor<strong>de</strong>n: 3 1 9 4 7<br />
Postor<strong>de</strong>n: 7 4 9 1 3<br />
14. Los árboles binarios <strong>de</strong> búsqueda equilibrados (AVL) se caracterizan porque la diferencia en altura<br />
<strong>de</strong> los subárboles izquierdo y <strong>de</strong>recho <strong>de</strong> cada nodo no difiere en más <strong>de</strong> una unidad. Para po<strong>de</strong>r<br />
<strong>de</strong>terminar si el árbol está o no equilibrado se maneja el concepto <strong>de</strong> factor <strong>de</strong> equilibrio <strong>de</strong> un nodo,<br />
<strong>de</strong>finido como la diferencia en altura <strong>de</strong>l subárbol izquierdo respecto <strong>de</strong>l <strong>de</strong>recho. Por tanto, en un árbol<br />
AVL el factor <strong>de</strong> equilibrio <strong>de</strong> los nodos sólo pue<strong>de</strong> valer –1, 0 ó 1. Implementar un programa en java<br />
que i<strong>de</strong>ntifique si un árbol es AVL o no.<br />
15. Se dice que un árbol binario es zurdo si o bien (1) es el árbol vacío o una hoja, o bien (2) sus hijos<br />
izquierdo y <strong>de</strong>recho son ambos zurdos y más <strong>de</strong> la mitad <strong>de</strong> sus <strong>de</strong>scendientes son <strong>de</strong>scendientes<br />
izquierdos. Desarrollar un programa en java <strong>para</strong> <strong>de</strong>cidir si un árbol binario es o no zurdo.<br />
16. Cuáles <strong>de</strong> los siguientes árboles <strong>de</strong> búsqueda binaria son AVL? En caso <strong>de</strong> no tratarse <strong>de</strong> árboles<br />
AVL <strong>de</strong>terminar los nodos que lo impi<strong>de</strong>n.<br />
a) b) c)
17. Dado el siguiente árbol binario <strong>de</strong> búsqueda codificado (cada símbolo <strong>de</strong> un nodo correspon<strong>de</strong> a un<br />
valor numérico), respon<strong>de</strong> cada uno <strong>de</strong> los siguientes incisos:<br />
a. ¿Qué símbolo representa el valor numérico más gran<strong>de</strong> <strong>de</strong>l árbol?<br />
b. ¿Qué símbolo representa el valor numérico más pequeño <strong>de</strong>l árbol?<br />
c. ¿Qué símbolo representa el valor medio <strong>de</strong>l árbol?<br />
d. ¿Cuáles son los ancestros <strong>de</strong>l nodo que contiene el símbolo ‘?’ ?<br />
e. ¿Cuántas com<strong>para</strong>ciones se requerirán <strong>para</strong> encontrar el símbolo & en el árbol?<br />
f. ¿Cuántos nodos como máximo podrían existir en el árbol si su altura fuera igual a 4?<br />
g. ¿Cuál es el símbolo cuyo valor numérico asociado es inmediatamente mayor al valor numérico<br />
<strong>de</strong>l símbolo ‘=’ ?<br />
h. Si el símbolo % representa la suma <strong>de</strong> los valores asociados a los símbolos $ y /, muestre con un<br />
dibujo cómo quedaría el árbol <strong>para</strong> insertar el símbolo %?.<br />
18. Dibuja el árbol B <strong>de</strong> or<strong>de</strong>n 2 que resulta <strong>de</strong>spués <strong>de</strong> insertar al árbol B <strong>de</strong> la figura los datos<br />
siguientes: 60, 3, 12, 23, 51, 80, 14, 59, 15, 9, 13, 1.<br />
19. Dada la secuencia <strong>de</strong> claves enteras 190, 57, 89, 90, 121, 170, 35, 48, 91, 22, 126, 132 y 80. Dibuja<br />
el árbol B <strong>de</strong> or<strong>de</strong>n 5 que se correspon<strong>de</strong> con dichas claves.<br />
20. Para el siguiente árbol AVL. Indique en cada recuadro qué tipo <strong>de</strong> rotaciones provoca la inserción<br />
<strong>de</strong> nuevos datos, suponiendo en cada caso el árbol original. (OK, RSI, RSD, RDI, RDD)<br />
=<br />
< $<br />
/ ? +<br />
&
7<br />
30 70<br />
15 40 55 80<br />
10 20<br />
35<br />
42 52 60<br />
17<br />
18 25<br />
37<br />
50<br />
58 66<br />
21. Dado el siguiente árbol binario, indique cuantos llamados recursivos se llevan <strong>para</strong> visitar el nodo H:<br />
a) SI el recorrido es en Postor<strong>de</strong>n = ___________<br />
b) Si el recorrido es en Preor<strong>de</strong>n = ____________<br />
c) Si el recorrido es en Inor<strong>de</strong>n = ______________<br />
22. Dibuja paso a paso el árbol B <strong>de</strong> or<strong>de</strong>n 2 con los siguientes datos: 6, 21, 39, 12, 33, 15, 35, 7, 26,<br />
18, 22, 5, 1, 8,45,34,40<br />
23. Dado el siguiente árbol AVL, indica el tipo <strong>de</strong> rotación a aplicar (RSI, RDI, RSD, RDD o SIN<br />
ROTACION) consi<strong>de</strong>rando en cada caso el árbol original:<br />
90
a) Si se inserta el nodo 100 = __________________<br />
b) Si se inserta el nodo 63 = ___________________<br />
c) Si se inserta el nodo 56 = ___________________<br />
24. Proporcione un árbol tri-ário <strong>de</strong> sus elección, con al menos 10 nodos, y realice lo siguiente:<br />
a) Transfórmelo a su correspondiente árbol binario.<br />
b) Balancee el árbol binario anterior consi<strong>de</strong>rando el or<strong>de</strong>n <strong>de</strong> sus elementos e indicando las<br />
rotaciones simples o dobles y si son izquierda o <strong>de</strong>recha, que usó en cada caso.<br />
25. Codifique un método que reciba como entrada la raíz <strong>de</strong> un árbol binario y que proporcione como<br />
salida un valor booleano que indique si el árbol está balanceado (verda<strong>de</strong>ro), o no (falso).<br />
26. Consi<strong>de</strong>re la lista siguiente <strong>de</strong> valores 20 12 10 15 13 18 25 y genere el árbol binario or<strong>de</strong>nado <strong>de</strong> tal<br />
lista, <strong>de</strong>spués balancee el árbol anterior indicando en cada paso el tipo y dirección <strong>de</strong> las rotaciones<br />
usadas <strong>para</strong> tal fin.<br />
27. Consi<strong>de</strong>re la lista <strong>de</strong> números siguiente: 42, 23, 9, 30, 16, 64, 6, 80 y genere el árbol B-Tree <strong>de</strong><br />
or<strong>de</strong>n 3 correspondiente, posteriormente inserte el valor 69 al árbol obtenido, mostrando con diagramas<br />
cada paso realizado.<br />
28. Codifique un método que reciba como entrada un árbol binario y que calcule su altura.<br />
29. Codifique un método que reciba como entrada un árbol m-ario y alguno <strong>de</strong> sus nodos y que muestre<br />
cuáles son los hermanos <strong>de</strong> dicho nodo, es <strong>de</strong>cir todos los nodos que se encuentran en el mismo nivel <strong>de</strong>l<br />
nodo dado.<br />
30. Consi<strong>de</strong>re la lista <strong>de</strong> valores 30, 7, 20, 25, 10, 19, 15, 18 y realice lo siguiente:<br />
- Dibuje el Árbol Binario <strong>de</strong> Or<strong>de</strong>namiento.<br />
- Balancee el árbol anterior, indicando en cada paso el tipo y dirección <strong>de</strong> la rotación que usó.<br />
31. Codifique un método que reciba como entrada una lista <strong>de</strong> n números y que los or<strong>de</strong>ne<br />
<strong>de</strong>scen<strong>de</strong>ntemente generando y recorriendo el correspondiente Árbol Binario Or<strong>de</strong>nado.<br />
32. A partir <strong>de</strong> un árbol binario, codifique un método que <strong>de</strong>termine el nivel <strong>de</strong> dicho nodo.
33. A partir <strong>de</strong> un árbol triario <strong>de</strong> su elección, con al menos 15 nodos, <strong>de</strong>termine cuál es su or<strong>de</strong>n, grado,<br />
nivel y altura.<br />
34. Consi<strong>de</strong>re el árbol siguiente y seleccione la respuesta correcta, al siguiente cuestionamiento:<br />
Al recorrer el árbol en _____________ se visitan más nodos <strong>para</strong> llegar al número 38.<br />
A) Preor<strong>de</strong>n<br />
B) Inor<strong>de</strong>n<br />
C) Postor<strong>de</strong>n<br />
D) Niveles<br />
35. Respóndase a las siguientes <strong>preguntas</strong> <strong>de</strong>l árbol <strong>de</strong> la figura siguiente:<br />
B C<br />
D E F G H<br />
a) ¿Qué nodos son hojas?<br />
b) ¿Qué nodo es la raíz?<br />
c) ¿Cuál es el padre <strong>de</strong>l nodo C?<br />
d) ¿Qué nodos son los hijos <strong>de</strong> C?<br />
e) ¿Qué nodos son los antecesores <strong>de</strong> C?<br />
f) ¿Qué nodos son los <strong>de</strong>scendientes <strong>de</strong> E?<br />
g) ¿Cuáles son los hermanos <strong>de</strong>rechos <strong>de</strong> D y E?<br />
h) ¿Qué nodos están a la izquierda y a la <strong>de</strong>recha <strong>de</strong> G?<br />
i) ¿Cuál es la profundidad <strong>de</strong>l nodo C?<br />
j) ¿Cuál es la altura <strong>de</strong>l nodo C?<br />
I<br />
A<br />
M N<br />
J K L
36. Escríbase un programa o un método que calcule la altura <strong>de</strong> un nodo <strong>de</strong> un árbol <strong>de</strong> aridad n<br />
37. Escríbanse los métodos correspondientes <strong>para</strong> recorrer un árbol binario en PreOr<strong>de</strong>n, EnOr<strong>de</strong>n y en<br />
PosOr<strong>de</strong>n<br />
38. Conviértase la expresión ((a+b)+c*(d+e)+f)*(g+h) en<br />
a) Una expresión prefija<br />
b) Una expresión Posfija<br />
39. Implemente en JAVA métodos que regresen respectivamente:<br />
a) el hijo izquierdo <strong>de</strong> un nodo en un árbol binario<br />
b) el hijo <strong>de</strong>recho <strong>de</strong> un nodo en un árbol binario<br />
c) el padre <strong>de</strong> un nodo dado en un árbol binario<br />
40. Escriba métodos don<strong>de</strong> dada una referencia a un árbol binario, digamos T, calculen:<br />
a) El número <strong>de</strong> hojas <strong>de</strong> T<br />
b) El número <strong>de</strong> nodos <strong>de</strong> T que contienen exactamente un hijo distinto <strong>de</strong> null<br />
c) El número <strong>de</strong> nodos <strong>de</strong> T que contienen exactamente dos hijos distintos <strong>de</strong> null<br />
41. Genere el correspondiente árbol ABB <strong>de</strong> la siguiente secuencia <strong>de</strong> datos (respete el or<strong>de</strong>n):<br />
5, 8, 2, 10, 6, 3, 1, 11, 9, 7, 4<br />
42. Implemente en JAVA un método que sirva <strong>para</strong> verificar si un ABB es un árbol AVL<br />
43. Genere el correspondiente árbol AVL <strong>de</strong> la siguiente secuencia <strong>de</strong> datos indicando las rotaciones que<br />
se llevan a cabo <strong>para</strong> balancear en todo momento el árbol.<br />
8, 9, 3, 7, 13, 15, 1, 4, 6, 17, 5, 11, 10, 18, 21, 2, 12, 19, 14, 20, 16<br />
44. Implementar una función que calcule el número <strong>de</strong> hojas <strong>de</strong> un árbol binario.<br />
45. Dado el siguiente árbol binario<br />
a) Indique cuantos llamados recursivos <strong>de</strong> la rutina postor<strong>de</strong>n se llevan a cabo, hasta que se visite el<br />
nodo H.<br />
b) Indique cuantos llamados recursivos <strong>de</strong> la rutina preor<strong>de</strong>n se llevan a cabo, hasta que se visite el<br />
nodo F.<br />
c) Indique cuantos llamados recursivos <strong>de</strong> la rutina inor<strong>de</strong>n se llevan a cabo, hasta que se visite el nodo<br />
A.
46. Construir un ABB balanceado a partir <strong>de</strong> los siguientes datos: 10, 75, 34, 22, 64, 53, 41,5, 25, 74, 20,<br />
15, 90, verificar la condición <strong>de</strong> balanceo en cada inserción.<br />
47. Dado el siguiente árbol contesta las siguientes <strong>preguntas</strong><br />
a) Qué nodos tienen FB positivo (+)<br />
b) Qué nodos tienen FB negativo (-)<br />
c) Si insertas el nodo 100 que tipo <strong>de</strong> rotación se provoca en el árbol<br />
i) no hay rotación ii) RSI iii) RDI iv) RSD v)RDD<br />
d) Si insertas el nodo 63 que tipo <strong>de</strong> rotación se provoca en el árbol<br />
i) no hay rotación ii) RSI iii) RDI iv) RSD v)RDD<br />
e) Si insertas el nodo 56 que tipo <strong>de</strong> rotación se provoca en el árbol<br />
i) no hay rotación ii) RSI iii) RDI iv) RSD v)RDD<br />
48. Dibuja el árbol B <strong>de</strong> or<strong>de</strong>n 3, inicialmente vacío, que resulta <strong>de</strong> realizar las siguientes<br />
inserciones: 6, 21, 39, 12, 33, 15, 35, 7, 26, 18, 22, 5, 1, 8<br />
49. El recorrido en preor<strong>de</strong>n <strong>de</strong> un cierto árbol binario produce: ADFGHKLPQRWZ , y el recorrido<br />
enor<strong>de</strong>n produce: GFHKDLAWRQPZ , dibujar el árbol binario.<br />
50. Para el siguiente árbol responda a las siguientes <strong>preguntas</strong><br />
-<br />
=<br />
L<br />
8<br />
R<br />
Z<br />
Árbol <strong>de</strong> símbolos<br />
a) Si los símbolos representan la codificación <strong>de</strong> los valores <strong>de</strong>l 1 al 20 ¿cuál es el valor asociado al<br />
símbolo + ?<br />
a) 5 b) 8 c) 9 d) 13 e) 15<br />
U<br />
O *<br />
K &<br />
$<br />
Z<br />
X<br />
+<br />
/<br />
%<br />
7<br />
E<br />
T
) Si se quisiera dar <strong>de</strong> baja la raíz <strong>de</strong>l árbol, ¿cuál <strong>de</strong> los siguientes símbolos es candidato <strong>para</strong><br />
sustituirlo?<br />
a) R b) - c) O d) T e) Z<br />
c) Si el símbolo Σ representa un valor menor que todos los valores árbol, <strong>de</strong>l ¿en qué posición se<br />
insertaría?<br />
i) A la izquierda <strong>de</strong>l nodo que contiene el símbolo L<br />
ii) A la <strong>de</strong>recha <strong>de</strong>l nodo que contiene al símbolo O<br />
iii) A la izquierda <strong>de</strong>l nodo que contiene al símbolo Z<br />
iv) A la <strong>de</strong>recha <strong>de</strong>l nodo que contiene al símbolo L<br />
v) A la izquierda <strong>de</strong>l nodo que contiene al símbolo -<br />
51. Realizar una función que sirva <strong>para</strong> encontrar el número <strong>de</strong> nivel en que se encuentra un dato en un<br />
ABB.<br />
52. Realizar una función que dado un elemento <strong>de</strong>l árbol, obtenga el elemento que es su abuelo.<br />
53. Realizar una función que dado un elemento <strong>de</strong>l árbol, obtenga los elementos que son sus primos.<br />
54. Realizar una función que obtenga la altura <strong>de</strong> un nodo dado <strong>de</strong>l árbol.<br />
55. Para el siguiente árbol AVL realice las siguientes inserciones, indicando que operaciones realiza,<br />
<strong>para</strong> cada inserción consi<strong>de</strong>rar el árbol original :<br />
7<br />
a) Inserción <strong>de</strong>: 19,28,33,45,51,75<br />
b) Inserción <strong>de</strong>: 100, 65, 68<br />
c) Inserción <strong>de</strong>: 5,16<br />
d) Inserción <strong>de</strong> 8<br />
e) Inserción <strong>de</strong>: 36,57,59,95<br />
30 70<br />
15 40 55 80<br />
10 20<br />
35<br />
42 52 60<br />
17<br />
18 25<br />
37<br />
50<br />
58 66<br />
90