Docsity
Docsity

Prepara tus exámenes
Prepara tus exámenes

Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity


Consigue puntos base para descargar
Consigue puntos base para descargar

Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium


Orientación Universidad
Orientación Universidad


Actividad 3 algoritmos, Ejercicios de Estructuras de Datos y Algoritmos

Actividad 3 segunda unidad de algoritmos

Tipo: Ejercicios

2020/2021

Subido el 02/02/2022

mercedes-haro
mercedes-haro 🇲🇽

4 documentos

1 / 2

Toggle sidebar

Esta página no es visible en la vista previa

¡No te pierdas las partes importantes!

bg1
Objetivo:
Realizar una corrida a mano, a partir de un algoritmo dado, para mostrar que dicho
algoritmo lleva hacia un árbol balanceado.
Instrucciones:
Se dice que un árbol es perfectamente balanceado, si para cada nodo en el árbol, el
número de nodos en sus subárboles izquierdo y derecho difieren a lo más en 1. Por tanto,
el balance de un árbol se puede alcanzar mediante el uso de un algoritmo como el
siguiente:
1. Sean el número de nodos a insertar
2. Utilizar un nodo para la raíz
3. Generar el subárbol izquierdo recursivamente con el siguiente número de nodos:
n_izq= n/2
4. Generar el subárbol derecho recursivamente con el siguiente número de nodos:
n_der= n–n_izq–1
Utilizando el algoritmo anterior proporciona una corrida a mano, es decir la representación
escrita de cada uno de los pasos que realizaría un programa con la implementación del
algoritmo, donde se muestre que el árbol resultado de la secuencia de números que se
presentan a continuación, se encuentra balanceado.
8, 9, 11, 15, 19, 20, 21, 7, 3, 2, 1, 5, 6, 4, 13, 14, 10, 12, 17, 16, 18.
pf2

Vista previa parcial del texto

¡Descarga Actividad 3 algoritmos y más Ejercicios en PDF de Estructuras de Datos y Algoritmos solo en Docsity!

Objetivo: Realizar una corrida a mano, a partir de un algoritmo dado, para mostrar que dicho algoritmo lleva hacia un árbol balanceado. Instrucciones: Se dice que un árbol es perfectamente balanceado, si para cada nodo en el árbol, el número de nodos en sus subárboles izquierdo y derecho difieren a lo más en 1. Por tanto, el balance de un árbol se puede alcanzar mediante el uso de un algoritmo como el siguiente:

  1. Sean el número de nodos a insertar
  2. Utilizar un nodo para la raíz
  3. Generar el subárbol izquierdo recursivamente con el siguiente número de nodos: n_izq= n/
  4. Generar el subárbol derecho recursivamente con el siguiente número de nodos: n_der= n–n_izq– Utilizando el algoritmo anterior proporciona una corrida a mano, es decir la representación escrita de cada uno de los pasos que realizaría un programa con la implementación del algoritmo, donde se muestre que el árbol resultado de la secuencia de números que se presentan a continuación, se encuentra balanceado. 8, 9, 11, 15, 19, 20, 21, 7, 3, 2, 1, 5, 6, 4, 13, 14, 10, 12, 17, 16, 18.

Tomamos el primer valor de la secuencia 8. Tomamos el segundo valor 9. Tomamos el tercer valor 11. Aquí podemos observar que el número de nodos a la izquierda excede a los nodos de la derecha, entonces para equilibra el árbol haremos una rotación. Al tenerlo ya equilibrado procedemos a tomar el siguiente valor 15. Tomamos el siguiente valor 19. Como anteriormente paso, aquí podemos observar que los nodos de la izquierda exceden los de la derecha, utilizamos nuevamente la rotación para equilibrarlo. Seguimos con el siguiente valor 20. Como en los casos anteriores por el desequilibrio en el número de nodos aplicamos rotación. Estando equilibrado seguimos con el siguiente valor 21. Utilizamos otra vez la rotación para para equilibrar el número de nodos. Continuamos con el siguiente valor 7. Continuamos con el siguiente valor 3. Utilizamos rotación para equilibrar los nodos. Seguimos con el valor 2. Hacemos la rotación. Seguimos con el valor 6 y rotamos en el nodo con valor 5. Seguimos con el valor 4, hacemos una rotación en el nodo con valor 2. Seguimos con el valor 13. Seguimos con el valor 14, y hacemos una rotación en el nodo con valor 11. Seguimos con el valor 10, como hay un diferencia entre el número de nodos hacemos una rotación en el nodo con valor 9. Seguimos con el valor 12.0 0 Seguimos con el valor 17. Continuamos con el valor 16. Tomamos el ultimo valor de la secuencia 18. Como podemos observar el árbol se encuentra balanceado.