11.05.2013 Views

Banco de preguntas para tercer departamental (ARBOLES)

Banco de preguntas para tercer departamental (ARBOLES)

Banco de preguntas para tercer departamental (ARBOLES)

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!