0% encontró este documento útil (0 votos)
87 vistas33 páginas

Estructuras y Tipos de Árboles en Informática

Los árboles son estructuras de datos no lineales compuestas por nodos y ramas, utilizados en diversas aplicaciones como la representación de fórmulas algebraicas y algoritmos de cifrado. Los árboles binarios, que permiten un máximo de dos hijos por nodo, son fundamentales en la búsqueda y organización de datos, con operaciones como inserción, recorrido y eliminación de nodos. El documento también detalla conceptos como el grado, altura, y el factor de equilibrio en árboles binarios de búsqueda.

Cargado por

Adan
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 PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
87 vistas33 páginas

Estructuras y Tipos de Árboles en Informática

Los árboles son estructuras de datos no lineales compuestas por nodos y ramas, utilizados en diversas aplicaciones como la representación de fórmulas algebraicas y algoritmos de cifrado. Los árboles binarios, que permiten un máximo de dos hijos por nodo, son fundamentales en la búsqueda y organización de datos, con operaciones como inserción, recorrido y eliminación de nodos. El documento también detalla conceptos como el grado, altura, y el factor de equilibrio en árboles binarios de búsqueda.

Cargado por

Adan
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 PDF, TXT o lee en línea desde Scribd

ÁRBOLES

Árboles
Definición
Los árboles son estructuras de datos no lineales, a diferencia
de los arreglos y listas que son estructuras de datos lineales.
Árboles
Aplicaciones

Para representar formulas algebraicas.


Algoritmos de cifrado y codificación.
Inteligencia artificial.
Árboles
Aplicaciones

En los sistemas operativos.


(almacenamiento de archivos)
Árboles
Aplicaciones

En el diseño de compiladores, procesadores de textos.


Árboles
Conceptos

Un árbol consta de un número finito de elementos,


denominados nodos y de un conjunto finito de líneas
dirigidas denominadas ramas, que conectan a los nodos.
Árboles
Conceptos

Grado: El número de ramas asociado con un nodo.

Padre: Si tiene nodos sucesores.

Hijo: Nodos sucesores o descendientes.

Hermanos: Dos o más nodos con el mismo padre.


Árboles
Conceptos

Hoja: Nodo que no tiene descendientes.

Nivel: El nivel de un nodo es su distancia al nodo raíz.

El nodo raíz tiene nivel 0.

Los hijos de la raíz tienen nivel 1 y sus hijos nivel 2 y


así sucesivamente.

Los hermanos están siempre en el mismo nivel, pero


no todos los nodos del mismo nivel son necesariamente hermanos.
Árboles
A

B E F

C D G H I

Padres:
Grado:
Hijos:
Nivel:
Hermanos:
Árboles
Conceptos

Camino: Es una secuencia de nodos en los que cada nodo es


adyacente al siguiente.

B E F

C D G H I
Árboles
Conceptos

Altura o profundidad: Es el nivel de la hoja del camino más largo más uno.
Árboles
Conceptos
Subárbol: Cualquier estructura conectada por debajo de la raíz, desde
el nodo y todos los descendientes de él.

• Un nodo simple es un subárbol.


• Cada nodo (descendencia) de un árbol es un subárbol.
Árboles binarios
Definición

Árbol binario: Es un árbol en el cada nodo no puede tener más de dos


subárboles.
• Cada nodo puede tener 0,1 o 2 hijos.

raíz
Árboles binarios
Conceptos

Balance o equilibrio: Para saber si un árbol binario esta en balance o


equilibrado necesitamos conocer su factor de equilibrio.

Factor de equilibrio: Es la diferencia en altura entre los subárboles


derecho e izquierdo.
Fe= AD -AI

Se encuentra en perfecto equilibrio si la diferencia es 0.

-1< 0 <1
Árboles binarios
Conceptos – factor de equilibrio

C D

E F
Árboles binarios de búsqueda
Definición

Árbol binario de búsqueda: Es un árbol en el que dado un nodo (raíz),


todos los datos del subárbol izquierdo son menores que el dato (raíz) y todos
los datos del subárbol derecho son mayores que el dato (raíz).

Datos Menores Datos Mayores


Árboles binarios de búsqueda
Operaciones

Insertar Nodo

Recorrer el Árbol

Borrar un Nodo

Buscar un Nodo
Árboles binarios de búsqueda
Nodo (ejemplo para un árbol)

typedef struct _Nodo


{
int dato;
_Nodo *izquierda;
_Nodo *derecha;
}Nodo;
Árboles binarios de búsqueda
Insertar un Nodo

Crear el nodo nuevo.


Necesitamos no perder la raíz
Recorrer el árbol hasta encontrar lugar en donde será insertado el nuevo nodo.
El nodo insertado se vuelve el nodo raíz. (Solo, sino hay nada en el árbol).
Árboles binarios de búsqueda
Crear e inicializar el Nodo

Nodo *crearNodo(int dato)


{
Nodo *nuevo;
nuevo =(Nodo *)malloc(sizeof(Nodo));
// Pedir DATO
nuevo->dato= dato;
nuevo->izquierda= NULL;
nuevo->derecha= NULL;
return nuevo;
}
Árboles binarios de búsqueda
Insertar un Nodo

Nodo *insertarNodo(Nodo *arbol)


{
Nodo *raiz,*nuevo;
raiz=arbol; else {
nuevo=crearNodo(dato); if(arbol->derecha != NULL)
if (arbol == NULL) arbol=arbol->derecha;
return nuevo; else {
else{ arbol->derecha=nuevo;
while (arbol != NULL){ return raiz;
if (nuevo->dato<= arbol->dato) }
if(arbol->izquierda != NULL)
arbol=arbol->izquierda; }
else { }
arbol->izquierda=nuevo; }
return raiz; }
}
Árboles binarios de búsqueda
Recorrer el árbol

Preorder: Visita raíz, recorre subárbol izquierdo, recorre subárbol derecho.


Inorder: Recorre subárbol izquierdo, visita raíz, recorre subárbol derecho.
Postorder: Recorre subárbol izquierdo, recorre subárbol derecho, visita raíz.
Árboles binarios de búsqueda
Recorrer el árbol

Preorder: Visita raíz, recorre subárbol izquierdo, recorre subárbol derecho.

Si esta vacío, regresar,


A sino
visitar raíz
B recorrido preorder del subárbol izquierdo
D recorrido preorder del subárbol derecho

C H
E

F G I J
Árboles binarios de búsqueda
Recorrer el árbol

Inorder: Recorre subárbol izquierdo, visita raíz, recorre subárbol derecho.

Si esta vacío, regresar,


A sino
recorrido inorder del subárbol izquierdo
B visitar raíz
D recorrido inorder del subárbol derecho

C H
E

F G I J
Árboles binarios de búsqueda
Recorrer el árbol

Postorder: Recorre subárbol izquierdo, recorre subárbol derecho, visita raíz.

Si esta vacío, regresar,


A sino
recorrido postorder del subárbol izquierdo
B recorrido postorder del subárbol derecho
D visitar raíz

C H
E

F G I J
Árboles binarios de búsqueda
Borrar un Nodo

1 El nodo a eliminar es una hoja.


2 El nodo a eliminar tiene un hijo.
3 El nodo a eliminar tiene dos hijos.
Árboles binarios de búsqueda
Borrar un Nodo

1 El nodo a eliminar es una hoja.


Árboles binarios de búsqueda
Borrar un Nodo

2 El nodo a eliminar tiene un hijo.

R N

N
Árboles binarios de búsqueda
Borrar un Nodo

3 El nodo a eliminar tiene dos hijos.

R
Árboles binarios de búsqueda
Borrar un Nodo
3 El nodo a eliminar tiene dos hijos.
Mover por la derecha

R
Árboles binarios de búsqueda
Borrar un Nodo
3 El nodo a eliminar tiene dos hijos.
Mover por la izquierda

R
Árboles binarios de búsqueda
Tarea

Investigar como borrar un nodo.


(Código)
Árboles binarios de búsqueda

Práctica

También podría gustarte