0% encontró este documento útil (0 votos)
160 vistas13 páginas

Ensayo sobre Árboles Binarios en Informática

El documento presenta información sobre los árboles binarios. Explica que los árboles binarios son estructuras de datos no lineales donde cada nodo puede apuntar a hasta dos nodos. También define conceptos clave como nodos, raíz, padre, hijo, hermano, hoja y rama. Luego profundiza en las propiedades de los árboles binarios como nivel, altura, peso, orden y grado. Finalmente, cubre temas como árboles n-arios, árboles binarios llenos y perfectos, y tip
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
160 vistas13 páginas

Ensayo sobre Árboles Binarios en Informática

El documento presenta información sobre los árboles binarios. Explica que los árboles binarios son estructuras de datos no lineales donde cada nodo puede apuntar a hasta dos nodos. También define conceptos clave como nodos, raíz, padre, hijo, hermano, hoja y rama. Luego profundiza en las propiedades de los árboles binarios como nivel, altura, peso, orden y grado. Finalmente, cubre temas como árboles n-arios, árboles binarios llenos y perfectos, y tip
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd

ESTRUTURA DE DATOS

ENSAYO SOBRE ARBOLES

PRESENTADO POR:

LUIS DANIEL MARTINEZ RINCON

PRESENTADO A:

FERNEY GUARDIA PALACIOS

FUNDACION UNIVERSITARIA CLARETIANA- “UNICLARETIANA”

FACULTAD DE INGENIERIA

PROGRAMA DE INGENIERIA DE SISTEMAS

07/10/2020

QUIBDÓ – CHOCO

INTRODUCCIÓN
El siguiente ensayo consiste en todo lo relacionado a los arboles binarios; trata sobre la

estructura de datos no lineales llamada árbol. Esta estructura se usa principalmente para

representar datos con una relación jerárquica entre sus elementos, como por ejemplo registros,

árboles genealógicos, y tablas de contenidos. Vamos a profundizar en un tipo especial de árbol

llamado árbol binario, la cual puede ser implementado fácilmente en la computadora; aunque en

un árbol puede parecer muy restrictivo. También se va a ampliar sobre árboles más generales y

puntos con relación a los árboles binarios; entre estos tenemos a la terminología, los árboles

binarios complementos, árboles binarios de búsqueda, búsqueda e inserción en árboles binarios

de búsqueda, árboles generales, representación de árboles generales en la computadora y

correspondencia entre los árboles generales y árboles binarios, todo esto con el objetivo de

afianzar conocimientos y lograr desarrollar saberes con respecto a esta estructura de datos, para

así mismo en el momento de implementarla y utilizarla nos sea más sencillo, y así poder llegar a

la resolución de problemas por medio de esta estructura. A los arboles ordenados de grado dos se

les conoce como arboles binarios ya que cada nodo del árbol no tendrá más de dos descendientes

directos. Las aplicaciones de los arboles binarios son muy variadas ya que se les puede utilizar

para representar una estructura en la cual es posible tomar decisiones con dos opciones en

distintos puntos.
DESARROLLO

Árbol

Como primero responderemos a la interrogante de: ¿Qué es un árbol? Un árbol en ciencias de la

computación o en programación es una estructura de datos (una estructura de datos es una forma

particular de organizar datos en una computadora para que puedan ser utilizados de manera

eficiente) ampliamente usada es una de las estructuras de datos más utilizadas, que emula o tiene

la forma de un árbol ya que tiene un conjunto de nodos conectados a él, se podría decir que es

una de las estructuras más complejas, se caracterizan por almacenar sus nodos de forma

jerárquica y no en forma lineal a diferencia de las listas ligadas, de la que ya hemos aprendido

antes, como también de las colas, pilas etc.

Los árboles son una de las estructuras de datos no lineales empleadas en informática para

resolver problemas de hardware, como también de software. Los árboles de directorios son

organizaciones bastante empleadas por cualquier usuario o programador de una computadora. De

igual manera cumplen un buen papel en la toma de decisiones., valido como un árbol de

decisiones. Los árboles genealógicos y los organigramas son ejemplos comunes. Entre otras

aplicaciones, los árboles se emplean para analizar circuitos eléctricos y para representar la

estructura de fórmulas matemáticas, así como también para organizar la información de bases de

datos, para representar la estructura sintáctica de un programa fuente en compiladores y para la

toma de decisiones.

Arboles binarios. Son estructuras de datos bastante similares a las listas doblemente enlazadas,

ya que tienen dos punteros que apuntan a otros elementos con la diferencia de que no tienen una

estructura lógica de tipo lineal o secuencial como ellas, si no ramificadas. Como ya lo he

mencionado su estructura tiene aspecto de árbol, de ahí su nombre.


Un árbol binario es una estructura de datos no lineal en la que cada nodo puede apuntar a uno o

como máximo a dos nodos. También se suele dar una definición recursiva que indica que es una

estructura compuesta por un dato y dos árboles. Este tipo de estructura se caracteriza porque

tiene un vértice principal y de él se desprenden dos ramas. La rama izquierda y la rama derecha a

las que también se le conoce como subárboles.

Para comprender mejor que es un árbol comenzaremos explicando cómo está estructurado. Está

estructurado de la siguiente manera:

 Nodos: Se le llama Nodo a cada elemento que contiene un Árbol.

 Nodo Raíz: Se refiere al primer nodo de un Árbol, Solo un nodo del Árbol puede ser la

Raíz.

 Nodo Padre: Se utiliza este término para llamar a todos aquellos nodos que tiene al

menos un hijo.

 Nodo Hijo: Los hijos son todos aquellos nodos que tiene un padre.

 Nodo Hermano: Los nodos hermanos son aquellos nodos que comparte a un mismo padre

en común dentro de la estructura.

 Nodo Hoja: Son todos aquellos nodos que no tienen hijos, los cuales siempre se

encuentran en los extremos de la estructura.

 Nodo Rama: Estos son todos aquellos nodos que no son la raíz y que además tiene al

menos un hijo.
Los arboles además de los nodos tiene otras propiedades importantes que son utilizadas en

diferentes ámbitos los cuales son:

Nivel: Nos referimos como nivel a cada generación dentro del árbol. Por ejemplo, cuando a un

nodo hoja le agregamos un hijo, el nodo hoja pasa a ser un nodo rama, pero además el árbol

crece una generación por lo que el Árbol tiene un nivel más. Cada generación tiene un número de

Nivel distinto que las demás generaciones.

Un árbol vacío tiene 0 niveles; El nivel de la Raíz es 1; El nivel de cada nodo será calculado

contando cuantos nodos existe sobre él, hasta llegar a la raíz + 1, y de forma inversa también se

podría, contar cuantos nodos existes desde la raíz hasta el nodo buscado + 1.

Altura: Le llamamos Altura al número máximo de niveles de un Árbol. La altura es calculada

mediante recursividad tomando el nivel más grande de los dos sub-árboles de forma recursiva de
la siguiente manera:

altura = max(altura(hijo1), altura(hijo2), altura(hijoN)) + 1

Peso: Conocemos como peso a el número de nodos que tiene un Árbol. Este factor es importante

porque nos da una idea del tamaño del árbol y el tamaño en memoria que nos puede ocupar en

tiempo de ejecución (Complejidad Espacial en análisis de algoritmos). El peso se puede calcular

mediante cualquier tipo de recorrido el cual valla contando los nodos a medida que avanza sobre

la estructura. El peso es un árbol es igual a la suma del peso de los sub-árboles hijos + 1

peso = peso(hijo1) + peso(hijo2) + peso(hijoN)+ 1

Orden: El Orden de un árbol es el número máximo de hijos que puede tener un Nodo. Notemos

que un Árbol con Orden = 1 no tendría sentido ya que sería una estructura lineal. ya que cada

nodo solo podría tener un Hijo y tendríamos un Árbol.

Este valor no lo calculamos, si no que ya lo debemos conocer cuando diseñamos nuestra

estructura, ya que si queremos calcular esto lo que obtendremos es el grado.

Grado: El grado se refiere al número mayor de hijos que tiene alguno de los nodos del Árbol y

está limitado por el Orden, ya que este indica el número máximo de hijos que puede tener un

nodo. El grado se calcula contando de forma recursiva el número de hijos de cada sub-árbol hijo

y el número de hijos del nodo actual para tomar el mayor, esta operación se hace de forma

recursiva para recorrer todo el árbol.

grado=max(contarHijos(hijo1), contarHijos(hijo2), contarHijos(hijoN), contarHijos(this))

Sub-Árbol: Conocemos como Sub-Árbol a todo Árbol generado a partir de una sección

determinada del Árbol, Por lo que podemos decir que un Árbol es un nodo Raíz con N Sub-
Árboles. Existen escenarios donde podemos sacar un Sub-Árboles del Árbol para procesarlo de

forma separada, de esta forma el Sub-Árboles pasa a ser un Árbol independiente, También

podemos eliminar Sub-Árboles completos, Agregarlos, entre otras operaciones.

Árbol n-ario: los arboles n-arios son aquellos arboles donde el número máximo de hijos por

nodo es de N, en la figura 7 podemos apreciar dos árboles con grado 2 y grado 3, estos dos

árboles también los podemos definir como Árbol n-ario con n = 2 y n=3 respectivamente.

Árboles binarios: Esta estructura se caracteriza por que cada nodo solo puede tener máximo 2

hijo, dicho de otra manera, es un Árbol n-ario de Grado 2.

Árbol binario lleno: Es aquel que el que todos los nodos tienen cero o 2 hijos con excepción de la

Raíz. Árbol binario perfecto: Es un Árbol lleno en donde todos las Hojas están en el

mismo Nivel.

Los recorridos son algoritmos que nos permiten recorrer un árbol en un orden especifico, los

recorridos nos pueden ayudar encontrar un nodo en el árbol, o buscar una posición determinada

para insertar o eliminar un nodo.

Básicamente podemos catalogar las búsquedas en dos tipos, las búsquedas en profundidad y las

búsquedas en amplitud.

 
Las búsquedas no informadas son aquellas en que se realiza el viaje por todo el árbol sin tener

una pista de donde pueda estar el dato deseado. Este tipo de búsquedas también se conocen como

búsquedas a ciegas.

Para comprender mejor que es una búsqueda no informada expondremos el siguiente ejemplo:

Imagine que vamos por la carretera y de repente encontramos dos caminos, el problema aquí es

que uno después de 50 kilómetros está en construcción y el otro nos lleva a nuestro destino, sin

embargo, ninguno de los caminos tiene señalamiento. Lo que tendríamos que hacer es recorrer el

primero camino y después de 50 kilómetros encontrarnos con que el camino está en

construcción, entonces tendríamos que regresar para irnos por el segundo camino, el cual nos

lleva a nuestro destino (Para esto ya recorrimos los 50 kilómetros de ida y los 50 kilómetros de

regreso lo que nos da 100 kilómetros más a nuestra ruta).

A este tipo de escenarios en los cuales las búsquedas de hacen a ciegas los conocemos como

búsquedas no informadas.

Los siguientes métodos de búsqueda que veremos a continuación (Búsqueda en profundad y

Búsqueda en amplitud) pertenecen a las búsquedas no informadas.

Búsqueda en profundidad

Recorrido Pre-orden: El recorrido inicia en la Raíz y luego se recorre en pre-orden cada

uno de los sub-árboles de izquierda a derecha.

Esta definición puede ser un poco compleja de entender por lo que mejor les dejo la siguiente

imagen.

 
Código de una función recursiva que recorre un árbol en pre-orden.

Recorrido Pos-orden: Se recorre el pos-orden cada uno de los sub-árboles y al final se recorre

la raíz.

Para comprender mejor esta definición observemos la siguiente imagen:

Código de una función recursiva que recorre un árbol en pos-orden

Recorrido in-orden: Se recorre en in-orden el primer sub-árbol, luego se recorre la raíz y al

final se recorre en in-orden los demás sub-árboles

Código de una función recursiva que recorre un árbol en in-orden.


Búsqueda en amplitud. Se recorre primero la raíz, luego se recorren los demás nodos ordenados

por el nivel al que pertenecen en orden de Izquierda a derecha.

Este tipo de búsqueda se caracteriza por que la búsqueda se hace nivel por nivel y de izquierda a

derecha.

Código de una función que recorre el árbol en amplitud.

Si observamos el código de forma minuciosa podemos observar dos puntos muy interesantes, el

primero es que esta función no es recursiva, y la segunda es que se utiliza una Cola para

controlar el flujo del recorrido.

Los pasos para hacer el recorrido es el siguiente:

1. Se agrega la Raíz a la cola de nodos por visitar

2. Mientras que la cola no este vacía se saca el primer elemento de la cola y continuamos

con el paso 3, Pero; si la cola está vacía entonces nos vamos al paso 5.

3. Se valida si el elemento sacado de la pila es el que estamos buscando, Si lo es, entonces

hemos terminado, Si no lo es se agregan todos los hijos del nodo a la pila de nodos

pendientes por procesar.


4. Regresamos al paso 2.

5. Terminamos sin un resultado.

 
CONCLUSIONES

Como hemos observado los árboles son estructuras bastante complejas, tiene una gran aplicación

en la ciencia y en la programación. Según lo que pudimos investigar. En los últimos años este

tipo de estructuras ha sido utilizadas con mucha frecuencia en la Inteligencia artificial. En

resumen, se puede concluir que un árbol como estructura de datos nos permite almacenar una

cantidad significativa de datos de forma ordenada. Un árbol se representa con un conjunto de

nodos entrelazados entre sí por medio de ramas, debemos tener en cuenta que el nodo base es

único, y se le denomina raíz. En un árbol un padre puede tener varios hijos, pero un hijo solo

puede tener un padre. Desde la raíz se puede llegar a cualquier nodo progresando por las ramas y

atravesando los sucesivos niveles estableciendo así un camino, se diferencias de las listas por la

forma en la como está estructurado en forma de pirámide y las listas de forma lineal.

Los recorridos de un árbol se entienden por el tratamiento realizado para acceder a los diferentes

nodos de un árbol. El recorrido puede afectar a la totalidad de los nodos del árbol, por eso

debemos tener muy claro que al realizar un árbol debemos colocar nombres complejos que trate

del algoritmo que estamos realizando, ya que al realizar los recorridos debemos saber dónde

estamos ubicados en dicho árbol, y cuando se vaya haciendo más extenso dicho algoritmo que

hemos creado sea más fácil de ubicarnos. Ya que si nos ubicamos mal en un nodo podemos crear

un mal funcionamiento del algoritmo, borrar información equivocada o que ocurra un

desbordamiento de datos.
REFERENCIAS

http://c.conclase.net/edd/?cap=007c

https://www.youtube.com/watch?v=rqaqJXbauyA&list=PLM-

p96nOrGcbznQ2ky13QIM7Fc8AQ150T

https://hhmosquera.wordpress.com/arbolesbinarios/

http://www.udb.edu.sv/udb_files/recursos_guias/informatica-ingenieria/programacion-

iv/2019/ii/guia-7.pdf

También podría gustarte