Está en la página 1de 7

LOGICA DE PROGRAMACION

DSW 11A
INTEGRANTES

-Acevedo Rivera, Alisson Gabriela


-Calderón Peña, Kimberly Nicolle
-Diaz Santos, Jonathan Heriberto
-Martínez Martínez, Danilo Amílcar
ARBOLES BINARIOS
Los árboles binarios son una estructura de datos jerárquica utilizada en ciencias de la
computación para representar relaciones jerárquicas entre elementos. Esta estructura se
compone de nodos, los cuales pueden tener cero, uno o dos hijos. Cada nodo tiene un valor
asociado, y los nodos que no tienen hijos se denominan hojas.

Los árboles binarios se pueden recorrer de diferentes maneras, los tres recorridos principales
son:

1. En el recorrido en orden, se visita primero el hijo izquierdo, luego el nodo actual y


finalmente el hijo derecho. Este recorrido produce una lista ordenada de los valores
almacenados en el árbol.

2. En el recorrido en preorden, se visita primero el nodo actual, luego el hijo izquierdo y


finalmente el hijo derecho.

3. En el recorrido en postorden, se visita primero el hijo izquierdo, luego el hijo derecho y


finalmente el nodo actual.
Un ejemplo de árbol binario podría ser el siguiente:

10
/ \
8 12
/\ /\
7 9 11 13

Este árbol binario tiene un nodo raíz con valor 10, y dos hijos, uno con valor 8 y otro con
valor 12. El nodo con valor 8 tiene dos hijos a su vez, uno con valor 7 y otro con valor 9. De
manera similar, el nodo con valor 12 tiene dos hijos, uno con valor 11 y otro con valor 13.
Los nodos que no tienen hijos se denominan hojas, en este caso los nodos con valores 7, 9, 11
y 13.
Este árbol binario cumple con la propiedad de ordenamiento, ya que para cada nodo, el valor
del hijo izquierdo es menor que el valor del nodo y el valor del hijo derecho es mayor que el
valor del nodo. Además, se puede realizar un recorrido en orden, preorden o postorden para
visitar todos los nodos del árbol en un orden específico.

Por ejemplo, el recorrido en orden del árbol sería: 7, 8, 9, 10, 11, 12, 13. En el recorrido en
preorden, el orden sería: 10, 8, 7, 9, 12, 11, 13, y en el recorrido en postorden, el orden sería:
7, 9, 8, 11, 13, 12, 10.

CARACTERISTICAS
Los árboles binarios son un tipo de estructura de datos en la que cada nodo puede tener como
máximo dos hijos. Algunas características de los árboles binarios son:

1. Cada nodo puede tener a lo sumo dos hijos y estos se denominan hijo izquierdo y hijo
derecho.

2. El primer nodo del árbol se llama raíz, no tiene padre y es el único nodo que no tiene una
arista entrante.

3. Los nodos que no tienen hijos se llaman nodos hoja o externos.

4. La altura de un árbol binario es la longitud del camino más largo desde la raíz hasta una
hoja.

5. Un árbol binario completo es aquel en el que todos los niveles excepto el último están
completamente llenos y en el último nivel, todos los nodos están en el lado izquierdo.

6. Un árbol binario balanceado es aquel en el que las alturas de los subárboles de cualquier
nodo difieren como máximo en una unidad.

7. Un árbol binario de búsqueda es aquel en el que para cada nodo, el valor de todas las
claves en su subárbol izquierdo es menor que la clave del nodo y el valor de todas las claves
en su subárbol derecho es mayor que la clave del nodo.
Estas son algunas de las características más importantes de los árboles binarios, aunque
existen muchas otras que pueden variar dependiendo de la implementación específica.

¿PARA QUE SIRVEN?


Los árboles binarios se utilizan en programación como una estructura de datos para
almacenar información de una manera organizada y eficiente. Algunos de los propósitos y
aplicaciones de los árboles binarios son:

1. Búsqueda y ordenación de datos: Los árboles de búsqueda binarios pueden utilizarse para
buscar y ordenar datos de manera eficiente.

2. Análisis de algoritmos: Los árboles binarios son una estructura de datos fundamental en el
estudio de algoritmos y estructuras de datos.

3. Compresión de datos: Los árboles binarios se utilizan en técnicas de compresión de datos


como el árbol de Huffman, que es capaz de generar códigos de compresión de longitud
variable para diferentes símbolos.

4. Recorridos y caminos: Los árboles binarios permiten diferentes tipos de recorridos y rutas,
como el recorrido en orden, preorden y postorden, y también pueden ser utilizados para
encontrar caminos y rutas específicos.

5. Inteligencia artificial: Los árboles binarios se utilizan en la construcción de árboles de


decisión para la toma de decisiones en aplicaciones de inteligencia artificial.

En resumen, los árboles binarios son una estructura de datos muy versátil que permite el
almacenamiento y organización eficiente de información y tiene una amplia variedad de
aplicaciones en programación y otras áreas de conocimiento

Este es solo un ejemplo de árbol binario, los árboles binarios pueden tener diferentes formas
y valores asociados a sus nodos, pero siempre cumplen con la propiedad de ordenamiento y
se pueden recorrer de diferentes maneras para procesar la información almacenada en ellos.

EJERCICIO
Se tiene el siguiente árbol binario:
7
/ \
5 9
/\ /\
2 6 8 10

Escribir un programa en C++ que muestre los números almacenados en el árbol binario
utilizando un recorrido inorden.

Solución:

c++
#include <iostream>
using namespace std;

struct Nodo{
int dato;
Nodo *izquierda, *derecha;
};

Nodo* nuevoNodo(int dato){


Nodo* nodo = new Nodo;
nodo -> dato = dato;
nodo -> izquierda = nodo -> derecha = nullptr;
return nodo;
}

void inorden(Nodo* nodo){


if(nodo == nullptr){
return;
}
inorden(nodo -> izquierda);
cout << nodo -> dato << " ";
inorden(nodo -> derecha);
}

int main(){
Nodo *raiz = nuevoNodo(7);
raiz -> izquierda = nuevoNodo(5);
raiz -> derecha = nuevoNodo(9);
raiz -> izquierda -> izquierda = nuevoNodo(2);
raiz -> izquierda -> derecha = nuevoNodo(6);
raiz -> derecha -> izquierda = nuevoNodo(8);
raiz -> derecha -> derecha = nuevoNodo(10);

cout << "Recorrido inorden: ";


inorden(raiz);
}

Resultado:
Recorrido inorden: 2 5 6 7 8 9 10

También podría gustarte