01 deda unidad 3. almacenamiento

17
Estructuras de datos Unidad 3. Almacenamiento 1 Ingeniería en Desarrollo de software Cuatrimestre 06 Asignatura: Estructuras de datos Clave: 160920621/150920621 Unidad 3. Almacenamiento

Upload: fangdark

Post on 23-Dec-2015

57 views

Category:

Documents


7 download

DESCRIPTION

Unidad 3 Desarrollo de software

TRANSCRIPT

Page 1: 01 DEDA Unidad 3. Almacenamiento

Estructuras de datos Unidad 3. Almacenamiento

1

Ingeniería en Desarrollo de software

Cuatrimestre 06

Asignatura:

Estructuras de datos

Clave: 160920621/150920621

Unidad 3. Almacenamiento

Page 2: 01 DEDA Unidad 3. Almacenamiento

Estructuras de datos Unidad 3. Almacenamiento

2

Índice

PRESENTACIÓN DE LA UNIDAD ............................................................................................................................. 3

PROPÓSITOS DE LA UNIDAD ................................................................................................................................. 3

COMPETENCIA ESPECÍFICA ................................................................................................................................... 3

TEMARIO DE LA UNIDAD ...................................................................................................................................... 3

3. ALMACENAMIENTO .......................................................................................................................................... 4

3.1 ÁRBOLES ......................................................................................................................................................... 4

3.2 ÁRBOLES BINARIOS ......................................................................................................................................... 9

CIERRE DE LA UNIDAD ........................................................................................................................................ 16

PARA SABER MÁS… ............................................................................................................................................ 16

FUENTES DE CONSULTA ...................................................................................................................................... 17

Page 3: 01 DEDA Unidad 3. Almacenamiento

Estructuras de datos Unidad 3. Almacenamiento

3

Presentación de la unidad

En esta tercera unidad se abordarán dos temas sumamente importantes para las Estructuras

de Datos: árboles y árboles binarios. Éstos son temas de estudio elementales en cuanto al

almacenamiento de datos se refiere; tienen que ver con la forma de almacenar datos de forma

jerárquica.

Los árboles sirven para realizar bases de datos donde la búsqueda y almacenamiento sean

óptimos, ya que en un árbol los datos se almacenan no de forma lineal, como en una pila o en

una cola, donde los datos que entran sólo se pueden leer en el respectivo orden de entrada.

También sirven para encriptar archivos, o para crear compiladores.

En las dos unidades anteriores se estudiaron primero las diferentes estructuras de datos como

son pilas, listas y colas, sus algoritmos, ejemplos, etc. En la segunda unidad se abordaron los

temas de búsqueda y ordenación de datos y, finalmente, en esta unidad conoceremos y

aprenderemos a utilizar los árboles.

Propósitos de la unidad

Que el estudiante empleé los conceptos de árboles y árboles binarios que le permitan dar

soluciones a problemáticas de almacenamiento de datos.

Competencia específica

Almacenar archivos con un orden jerárquico para permitir búsquedas, recorridos seguros y

eficientes mediante el uso de árboles y árboles binarios.

Temario de la unidad

3. Almacenamiento

3.1. Árboles

3.1.1. Generalidades

3.1.2. Creación de un árbol

3.1.3. Aplicaciones

3.2. Árboles binarios

3.2.1. Generalidades

3.2.2. Creación de un árbol binario

3.2.3. Recorrido de un árbol binario

3.2.4. Búsqueda en un árbol binario

Page 4: 01 DEDA Unidad 3. Almacenamiento

Estructuras de datos Unidad 3. Almacenamiento

4

3. Almacenamiento

Esta unidad con la que se cierra el estudio de la materia de Estructuras de Datos es de vital

importancia en tu carrera, ya que aprenderemos formas jerárquicas de almacenamiento de

datos. Desde hace mucho tiempo en el mundo han existido y siguen existiendo las jerarquías:

en los gobiernos, la milicia, las iglesias, las familias, etc. Asimismo, en términos informáticos,

en lo que se refiere al almacenamiento de datos, existen las jerarquías. Los árboles son

formas no lineales de almacenamiento de datos. En la siguiente figura podemos ver la imagen

de un árbol de genealogía, dicho árbol pertenece a un programa de genealogía de descarga

gratuita en internet. La siguiente figura muestra un ejemplo de un árbol genealógico generado

por un software que puedes descargar de forma gratuita en la dirección que aparece debajo de

la figura, un árbol genealógico es un claro ejemplo del uso práctico que podemos darle al tema

de árboles y árboles binarios.

Figura. Árbol de genealogía

Recuperado de: Red.ahorro.net

3.1. Árboles

Un árbol es un objeto que comienza con una raíz (root) y se extiende en varias ramificaciones

o líneas (edges), cada una de las cuales puede extenderse en ramificaciones hasta terminar

finalmente en una hoja. Consulta Goodrich & Tamassia (2010, pp. 229 - 232) para que

puedas conocer de una forma genérica acerca del tema de los árboles. Esta referencia te

proporcionará un panorama más amplio del tema de los árboles y su aplicación práctica en

actividades del día a día. Los autores de la bibliografía mencionada describen los árboles, su

algoritmo, aplicaciones y los complementan con ejemplos; primeramente desarrollan la

definición del concepto de árboles, enseguida plantean situaciones de nuestra vida cotidiana

donde empleamos las estructuras de árboles; un claro ejemplo lo vemos en la imagen anterior,

Page 5: 01 DEDA Unidad 3. Almacenamiento

Estructuras de datos Unidad 3. Almacenamiento

5

donde en un árbol genealógico se representan las diferentes ramificaciones de los

antepasados de una persona o familia en particular.

Los árboles representan las estructuras no lineales y dinámicas de datos más importantes en

computación:

Dinámicas, puesto que la estructura árbol puede cambiar durante la ejecución de un

programa.

No lineales, puesto que a cada elemento del árbol pueden seguirle varios elementos.

La siguiente figura es un ejemplo de la representación gráfica de un árbol donde

podemos ver claramente que a cada nodo del árbol le puede seguir otro nodo, esto nos

permite conocer que un árbol es no lineal. Un árbol es dinámico ya que puede cambiar

su estructura una vez que se está ejecutando el programa.

Figura. Representación de un árbol

Recuperado de: computacion.cs.cinvestav.mx

Generalidades

En la ciencia de la computación definimos un árbol como un conjunto de nodos y líneas. Un

nodo es un elemento de información que reside en el árbol. Una línea es un par de nodos

ordenados <u,v>, y a la secuencia de líneas se le denomina ruta (path).

Además, los árboles tienen las siguientes propiedades:

Tienen un nodo al que se le llama raíz del árbol.

Todos los nodos, excepto la raíz, tienen una sola línea de entrada (el nodo raíz no tiene

ninguna).

Existe una ruta única del nodo raíz a todos los demás nodos del árbol.

Si hay una ruta <a,b>, entonces a „b‟ se le denomina „hijo‟ de „a‟ y es el nodo raíz de

un subárbol.

Ahora, consulta Joyanes (2010, pp. 495 - 505) para que revises la explicación que ofrece el

autor acerca de la representación de los árboles. Podrás encontrar definiciones, imágenes,

etc. La bibliografía te servirá para complementar la información proporcionada en el texto de

Goodrich & Tamassia (2010) ya que el autor da su propia definición del concepto de árbol, sus

Page 6: 01 DEDA Unidad 3. Almacenamiento

Estructuras de datos Unidad 3. Almacenamiento

6

propios casos y ejemplos de aplicaciones en el mundo real. Es importante que consultes la

diferente bibliografía sugerida y que puedas formar tu propio concepto, ejemplos, casos e

incluso aplicaciones propias, seguramente influenciado por tu entorno. Así mismo, Joyanes

(2010) muestra cómo se forman gráficamente los árboles, qué son los nodos, cómo se

representan, cómo se acomodan, etc.

La siguiente ilustración muestra cómo se representan gráficamente los nodos en un árbol.

Figura. Representación de los nodos de un árbol

Recuperado de: www.javaya.com.ar

La figura anterior fue recuperada de la URL: www.javaya.com.ar, este sitio muestra de forma

gráfica y, a través de ejemplos, el tema de los árboles mismo que el autor Joyanes (2010)

también explica en el libro ya citado. Tanto en el sitio web mencionado como en el libro de

Joyanes (2010) encontrarás de forma didáctica la explicación para crear árboles a través de

los nodos, así también cómo acomodar dichos nodos y cómo representarlos en una gráfica. Es

menester que consultes ambas fuentes, tanto la web como la bibliográfica, ya que, a través de

la lectura que tú mismo realices formarás tus propios conceptos y tu visualización de forma

gráfica de un árbol a través de nodos. Aprenderás con diferentes ejemplos a crear y utilizar los

árboles.

Creación de un árbol

Enseguida tienes una lista de 10 puntos necesarios para la creación de un árbol, éstas son

consideraciones para crear paso a paso el árbol y codificarlo.

1. NODO indica un elemento, o ítem, de información.

2. Todo árbol que no es vacío, tiene un único nodo raíz.

3. Un nodo X es descendiente directo de un nodo Y, si el nodo X es apuntado por el nodo

Y. X es hijo de Y.

Page 7: 01 DEDA Unidad 3. Almacenamiento

Estructuras de datos Unidad 3. Almacenamiento

7

4. Un nodo X es antecesor directo de un nodo Y, si el nodo X apunta al nodo Y. X es

padre de Y.

5. Se dice que todos los nodos que son descendientes directos (hijos) de un mismo nodo

(padre), son hermanos.

6. Todo nodo que no tiene ramificaciones (hijos), se conoce con el nombre de terminal u

hoja.

7. Todo nodo que no es raíz, ni terminal u hoja se conoce con el nombre de interior.

8. Grado es el número de descendientes directos de un determinado nodo. Grado del árbol

es el máximo grado de todos los nodos del árbol.

9. Nivel es el número de arcos que deben ser recorridos para llegar a un determinado

nodo. Por definición, la raíz tiene nivel 1.

10. Altura del árbol es el máximo número de niveles de todos los nodos del árbol.

Ahora, consulta Goodrich & Tamassia (2010, pp. 233 - 250) para que profundices en los

algoritmos de creación de un árbol. Así podrás ampliar tu visión de cómo emplear los puntos

anteriores, incluso podrás consultar ejemplos. Los diez puntos para la creación de un árbol

puedes encontrarlos también en la bibliografía de Goodrich & Tamassia (2010), sin embargo,

además encontrarás ejemplos, imágenes y casos que te permitirán profundizar en el empleo

de dichos pasos.

La siguiente imagen nos ilustra la forma como se van insertando nodos en el árbol.

Figura. Niveles y nodos en un árbol.

Recuperado de: www.javaya.com.ar

Page 8: 01 DEDA Unidad 3. Almacenamiento

Estructuras de datos Unidad 3. Almacenamiento

8

Aplicaciones

El concepto de árboles en programación tiene aplicaciones muy específicas en el mundo real.

Si bien son cosas muy específicas de ciertas ciencias; por ejemplo la Genealogía pudiera ser

para conocer los antepasados de una persona; pero también se puede aplicar en otros

escenarios, como en la cría de animales: con los perros con pedigrí o con los caballos de

carrera; o, también sería aplicable a la propagación de enfermedades.

En matemáticas, por ejemplo, podría ser en la teoría de probabilidad al analizar diferentes

rutas de un suceso.

En el ámbito del desarrollo de software, puede aplicarse en el análisis de una interfaz usuario,

al analizar cómo navega el usuario en un ambiente que le proporciona diferentes opciones de

desplazamiento (por ejemplo en una interfaz en un cajero automático).

Asimismo, puedes consultar bibliografía que te permita conocer otras aplicaciones de los

árboles, para ello, revisa Joyanes & Zahonero (2012, pp. 517 - 530) donde encontrarás más

aplicaciones de los árboles. En este texto puedes encontrar aplicaciones de los árboles como

lo son los empleados en el campo de la medicina para estudiar el comportamiento de una

enfermedad en determinada población o sector de ésta, así como la erradicación de la

enfermedad por medio de ciertos medicamentos. Se analizan las ramificaciones que se

generan, la cantidad de nodos y los recorridos a dichos nodos.

Figura. Plantilla de árbol genealógico

Recuperado de: www.genoom.com

La imagen anterior muestra una plantilla para crear árboles genealógicos, que como ya se

explicó en puntos anteriores, es una de las aplicaciones más prácticas del tema de los árboles

en nuestra vida cotidiana.

Ahora: Ingresa al archivo de Actividades de la unidad 3 y realiza la Actividad 2. Driagrama y

programa un árbol, para un caso que se te plantea, es el caso de un médico general y su

clasificación de pacientes según determinados criterios.

Page 9: 01 DEDA Unidad 3. Almacenamiento

Estructuras de datos Unidad 3. Almacenamiento

9

3.2. Árboles binarios

Generalidades

Un árbol ordenado es aquel en el cual la distribución de las ramas sigue una secuencia lógica.

Los árboles ordenados de grado 2 son de especial interés, puesto que representan una de las

estructuras de datos más importante en computación, conocida como árboles binarios.

Consulta Joyanes (2010, pp. 506 - 520), donde encontrarás de forma detallada la explicación

de árboles binarios y las formas de representarlo y trabajarlo. En esta fuente también podrás

conocer algunas aplicaciones de este tipo de árboles, ejemplos que te ayudarán a ampliar tu

conocimiento. Consultar este libro te servirá también para diferenciar entre árboles y árboles

binarios y cuándo usar cada tipo de árbol según sea el caso.

Así mismo, entra al archivo de Actividades y realiza la Actividad 1. Árboles y árboles binarios,

donde a través de algunas definiciones y explicaciones establecerás la diferencia entre árboles

y árboles binarios, sigue fielmente las indicaciones y envíalas para su revisión.

En un árbol binario, cada nodo puede tener como máximo dos subárboles; y siempre es

necesario distinguir entre el subárbol izquierdo y el subárbol derecho. Algunas aplicaciones de

árboles binarios son: árboles binarios de búsqueda, representación de una expresión

algebraica, un árbol genealógico, etc.; dos árboles binarios son distintos cuando sus

estructuras son diferentes; dos árboles binarios son similares cuando sus estructuras son

idénticas, pero la información que contienen sus nodos difiere entre sí.

Los árboles binarios equivalentes se definen como aquellos que son similares y además los

nodos contienen la misma información. Se define un árbol binario completo como un árbol en

el que todos sus nodos, excepto los de último nivel, tienen dos hijos: el subárbol izquierdo y el

subárbol derecho.

Se puede calcular el número de nodos de un árbol binario completo de altura ”h‟, aplicando la

siguiente fórmula: NÚMERO DE NODOS ABC= 2h–1

Donde ABC significa árbol binario completo, y ”h” la altura del árbol.

Existen dos formas de representar un árbol binario en memoria: por medio de puntero y Por

medio de arreglos.

En la siguiente figura podemos apreciar una representación de un árbol binario y otro casi

completo:

Page 10: 01 DEDA Unidad 3. Almacenamiento

Estructuras de datos Unidad 3. Almacenamiento

10

Figura. Árbol binario y árbol binario casi completo

Recuperado de: computacion.cs.cinvestav.mx

Creación de un árbol binario

Los nodos del árbol binario serán representados como registros, que contendrán como mínimo

tres campos. En un campo se almacenará la información del nodo. Los dos restantes se

utilizarán para apuntar a los subárboles izquierdo y derecho respectivamente.

Tres campos de almacenamiento en un árbol binario:

IZQ: Campo donde se almacena la dirección del subárbol izquierdo del nodo T.

INFO: Campo donde se almacena la información de interés del nodo.

DER: Campo donde se almacena la dirección del subárbol derecho del nodo T.

La definición de un árbol binario en lenguaje algorítmico queda de la siguiente forma:

ENLACE= ^NODO

NODO= REGISTRO

IZQ: tipo ENLACE

INFO: tipo de dato

DER: tipo ENLACE

Fin

Consulta Goodrich & Tamassia (2010, pp. 251 - 260) para que analices el algoritmo de

creación de árboles binarios, lo pongas en práctica y además puedas establecer las

diferencias entre la creación de árboles y la creación de árboles binarios. En el libro

encontrarás el mismo algoritmo para la creación de un árbol binario pero también ejemplos

que te permitirán poner en práctica este algoritmo.

IZQ INFO DER

Page 11: 01 DEDA Unidad 3. Almacenamiento

Estructuras de datos Unidad 3. Almacenamiento

11

Recorrido de un árbol binario

Una de las operaciones más importantes a realizar en un árbol binario es el recorrido de los

mismos. Recorrer significa visitar los nodos del árbol en forma sistemática; de tal manera que

todos los nodos del mismo sean visitados una sola vez. Existen tres formas diferentes de

efectuar el recorrido y todas ellas de naturaleza recursiva, éstas son:

1. Recorrido en preorden:

Visitar la raíz

Recorrer el subárbol izquierdo

Recorrer el subárbol derecho

Figura. Recorrido Pre-orden

Recuperado de: sites.google.com

2. Recorrido en inorden:

Recorrer el subárbol izquierdo

Visitar la raíz

Recorrer el subárbol derecho

Figura. Recorrido Enorden o In-orden

Recuperado de: sites.google.com

3. Recorrido en postorden:

Recorrer el subárbol izquierdo

Recorrer el subárbol derecho

Visitar la raíz

Page 12: 01 DEDA Unidad 3. Almacenamiento

Estructuras de datos Unidad 3. Almacenamiento

12

Figura. Recorrido Post-orden

Recuperado de: sites.google.com

El término visitar puede ser reemplazado por escribir la información el nodo.

Ahora, consulta Joyanes & Zahonero (2012, pp. 531 - 550) para que ahondes más en los tres

tipos de recorridos en árboles. En esta fuente encontrarás ejemplos como ecuaciones

algebraicas donde podrás aplicar los recorridos y así practicarlos.

Líneas anteriores pudiste ver los pasos y las ilustraciones de los recorridos posibles para un

árbol binario, ahora revisarás el algoritmo para cada recorrido.

En el recorrido preorden hay que visitar los nodos en el siguiente orden:

Raíz

Sub arbol izquierdo

Sub árbol derecho

ALGORITMO PRE-ORDEN

PREORDEN(NODO)

{ El algoritmo realiza el recorrido preorden en un árbol binario. NODO es un dato de tipo

PUNTERO}

{INFO, IZQ y DER son campos del registro NODO. INFO es una o más variables de

información del nodo, IZQ y DER son variables de tipo puntero}

Si NODO != NULL entonces

Visitar el NODO

{Escribir la información NODO^.INFO}

Regresa a PREORDEN con PREORDEN(NODO^.IZQ)

{Llamada recursiva con la rama izquierda}

Regresa a PREORDEN con PREORDEN(NODO^.DER)

{Llamada recursiva con la rama derecha}

Fin-si

Fin-algoritmo

En el recorrido in-orden hay que visitar los nodos en el siguiente orden:

Page 13: 01 DEDA Unidad 3. Almacenamiento

Estructuras de datos Unidad 3. Almacenamiento

13

Sub árbol izquierdo

Raíz

Sub árbol derecho

ALGORITMO IN-ORDEN

INORDEN(NODO)

{El algoritmo realiza el recorrido inorden en un árbol binario. NODO es un dato de tipo

PUNTERO}

{INFO, IZQ y DER son campos del registro NODO. INFO es una o más variables de

información del nodo, IZQ y DER son variables de tipo puntero}

Si NODO != NULL entonces

INORDEN(NODO^.IZQ) {Llamada recursiva con la rama izquierda}

Visitar el NODO {Escribir la información NODO^.INFO}

INORDEN(NODO^.DER) {Llamada recursiva con la rama derecha}

Fin-si

Fin-algoritmo

En el recorrido pos-torden hay que visitar los nodos en el siguiente orden:

Sub árbol izquierdo

Sub árbol derecho

Raíz

ALGORITMO POSTORDEN(NODO)

{El algoritmo realiza el recorrido postorden en un árbol binario. NODO es un dato de tipo

PUNTERO}

{ INFO, IZQ y DER son campos del registro NODO. INFO es una o más variables de

información del nodo, IZQ y DER son variables de tipo puntero}

Si NODO ¡= NULL entonces

POSTORDEN(NODO^.IZQ) {Llamada recursiva con la rama izquierda}

POSTORDEN(NODO^.DER) {Llamada recursiva con la rama derecha}

Visitar el NODO {Escribir la información NODO^.INFO}

Fin-si

Fin-algoritmo.

También puedes consultar Goodrich & Tamassia (2010, pp. 261 - 269) y de esta manera

conocer de forma más amplia acerca de los recorridos pre-orden, in-orden y post-orden. Así

podrás ampliar tus referencias acerca de los posibles recorridos a realizar con los árboles

binarios, así mismo podrás conocer en qué situaciones se podría aplicar cada recorrido.

Enseguida realiza la Actividad 3.Programa las operaciones en un árbol binario para que

practiques el tema de árboles binarios. La actividad muestra la imagen de un árbol binario con

sus diferentes nodos, a partir de dicho árbol se te pide realices ciertas acciones.

Page 14: 01 DEDA Unidad 3. Almacenamiento

Estructuras de datos Unidad 3. Almacenamiento

14

Búsqueda de un árbol binario

El árbol binario de búsqueda es una estructura sobre la cual se pueden realizar eficientemente

las operaciones de búsqueda, inserción y eliminación.

Por lo tanto, consulta Joyanes & Zahonero (2012, pp. 551 - 559) para que profundices

entorno a las búsquedas en un árbol binario. Es importante que conozcas de forma clara de

un árbol binario y cuál es la diferencia contra un árbol convencional. Una vez que identifiques

cada tipo de árbol, podrás emplearlos de forma adecuada.

La bibliografía te ofrece diferentes ejemplos que puedes consultar para que practiques y

apliques la búsqueda en un árbol binario.

Algoritmo de Búsqueda

BÚSQUEDA (NODO, INFOR)

{El algoritmo localiza un nodo en un árbol binario de búsqueda. NODO es una variable de tipo

puntero que apunta a la raíz del árbol. INFOR es una variable que contiene la información que

se desea localizar en el árbol. Cabe aclarar que la primera vez la variable NODO no puede ser

vacía.}

Si INFOR < NODO^.INFO entonces

Si NODO^.IZQ = NULL entonces

Escribir “El nodo no se encuentra en el árbol”

Sino

BÚSQUEDA (NODO^.IZQ, INFOR) {Llamada recursiva}

Fin Si

Sino

Si INFOR > NODO^.INFO entonces

Si NODO^.DER = NULL entonces

Escribir “El nodo no se encuentra en el árbol”

Sino

BÚSQUEDA (NODO^.DER, INFOR) {Llamada recursiva}

Fin Si

Sino

Escribir “El nodo se encuentra en el árbol”

Fin Si

Fin Si

Fin del algoritmo

Inserción de un árbol binario de búsqueda

Los pasos que deben realizarse para insertar un elemento a un árbol binario de búsqueda son

los siguientes:

1.-Debe compararse la clave a insertar con la raíz del árbol. Si es mayor, debe avanzarse

hacia el subárbol derecho. Si es menor, debe avanzarse hacia el subárbol izquierdo.

2.-Repetir sucesivamente el paso 1 hasta que se cumpla alguna de las siguientes condiciones:

Page 15: 01 DEDA Unidad 3. Almacenamiento

Estructuras de datos Unidad 3. Almacenamiento

15

2.1 El subárbol derecho es igual a vacío, o el subárbol izquierdo es igual a vacío; en

cuyo caso se procederá a insertar el elemento en el lugar que le corresponde.

2.2 La clave que quiere insertarse es igual a la raíz del árbol; en cuyo caso no se

realiza la inserción.

Consulta Joyanes (2010, pp. 521 - 535) para que profundices en el tema de inserción en un

árbol binario de búsqueda, de esta manera podrás conocer una de las operaciones

importantes a realizar con un árbol binario que es la inserción de datos, ya que sería la primera

operación a realizar, luego realizar búsquedas y después hacer modificaciones a determinados

nodos, aplicar recorridos y finalmente hacer eliminaciones.

Borrado de un árbol binario de búsqueda

Consiste en eliminar un nodo del árbol sin violar los principios que definen justamente un árbol

binario de búsqueda. Se debe distinguir los siguientes casos:

1.-Si el elemento a borrar es terminal u hoja, simplemente se suprime.

2.-Si el elemento a borrar tiene un sólo descendiente, entonces tiene que sustituirse por ese

descendiente.

3.-Si el elemento a borrar tiene dos descendientes, entonces se tiene que sustituir por el nodo

que se encuentra más a la izquierda en el subárbol derecho o por el nodo que se encuentra

más a la derecha en el subárbol izquierdo.

Además, debe recordarse que antes de eliminar un nodo, debe localizársele en el árbol.

Consulta Goodrich & Tamassia (2010, páginas 270 - 274) para que identifiques el algoritmo

de inserción de un árbol binario de búsqueda.

Con este tema concluimos el tema de árboles binarios que, como puedes constatar, es un

tema bastante profundo y útil en el campo de la programación. De esta manera has conocido

los recorridos que se realizan a los árboles binarios, sus algoritmos, diagramas que los ilustran

gráficamente y los códigos aplicables a cada recorrido.

Ya que consultaste los textos señalados, ingresa al archivo de Actividades y realiza la

Actividad 4. Discusión sobre árboles y árboles binarios, se trata de un foro de discusión donde

se encuentran algunas preguntas que se discutirán con la finalidad de ampliar nuestro

panorama acerca de los diferentes conceptos abordados a lo largo de la Unidad 3.

Almacenamiento.

Autoevaluación

Para reforzar los conocimientos relacionados con los temas que se abordaron en esta tercera

unidad del curso, es necesario que resuelvas la autoevaluación de la unidad.

Para realizar esta actividad, abre tu archivo de Actividades de la unidad.

Page 16: 01 DEDA Unidad 3. Almacenamiento

Estructuras de datos Unidad 3. Almacenamiento

16

Por último deberás realizar la Evidencia de aprendizaje. Almacenamiento para que puedas

aplicar los conocimientos adquiridos en esta unidad y los apliques mediante la realización de

un programa en java, no olvides seguir las instrucciones al pie de la letra.

Autorreflexiones

Además de enviar tu trabajo de la Evidencia de aprendizaje, es importante que ingreses al

foro Preguntas de Autorreflexión y consultes las preguntas que tu Facilitador(a) presente, a

partir de ellas, debes elaborar tu Autorreflexión en un archivo de texto llamado

DEDA_U3_ATR_XXYZ. Posteriormente envía tu archivo mediante la herramienta

Autorreflexiones.

Cierre de la unidad

En esta unidad se abordaron diferentes temas de gran interés en la programación, estos

temas son los árboles y los árboles binarios. Con ayuda del material bibliográfico de apoyo

pudiste conocer lo que es un árbol, su algoritmo, así como implementaciones reales.

También revisaste los árboles binarios, cómo se usan, la forma de representarse, sus

algoritmos y sus variantes: algoritmo pre-orden, in-orden y post-orden. También conociste lo

árboles binarios de búsqueda, su algoritmo, forma de insertarles datos, así como la forma de

borrar de un árbol binario, con estos temas y con esta unidad concluimos la asignatura de

Estructuras de datos.

De esta manera llegamos al término de la Unidad 3. Almacenamiento y además de la

asignatura Estructuras de datos. A lo largo de las unidades desarrollamos diversos temas que

son muy complejos, pero a la vez sumamente útiles, en la programación, es importante que

además de haber revisado el contenido de tus unidades, hayas consultado las fuentes de

internet y las fuentes bibliográficas, asimismo tengas el buen hábito de la lectura y del

autoaprendizaje ya que, en el área de las TIC´s la evolución en los temas es sumamente

rápida y es necesario que te estés actualizando, si bien, las estructuras de datos no son tan

volátiles como otros temas, la forma de aplicarlas en diversos lenguajes si va cambiando

velozmente.

¡En hora buena, concluiste la asignatura Estructura de datos!

Para saber más…

Existen diversas fuentes que puedes consultar para ampliar tus conocimientos. Entre otras

fuentes puedes consultar:

http://delta.cs.cinvestav.mx/~adiaz/anadis/BinTree.pdf

En esta fuente encontrarás un documento de extensión .pdf en donde podrás revisar de una

forma muy práctica definiciones, recorridos y algoritmos de árboles.

http://www.lcc.uma.es/~galvez/ftp/tad/tadtema4.pdf

Page 17: 01 DEDA Unidad 3. Almacenamiento

Estructuras de datos Unidad 3. Almacenamiento

17

Esta otra fuente detalla más a profundidad los diferentes conceptos relacionados con los

árboles, así mismo explica de forma algebraica el algoritmo base para programar árboles.

Fuentes de consulta

Goodrich & Tamassia, 2010. Estructura de Datos y Algoritmos en Java. México: CECSA

Joyanes & Zahonero, 2012. Programación en Java 2, Algoritmos, estructuras de datos y

programación orientada a objetos. España: Mc Graw Hill

Joyanes, 2010. Fundamentos de programación, Algoritmos, Estructuras de datos y objetos.

España: Mc Graw Hill