Está en la página 1de 4

IDSL343-1-Laboratorio de Estructuras de Datos y Algoritmos I

Asignatura

Practica 9 - Final
Tema

Rahnya Isolina Negrón Buendía 1098587


Estudiante

Edwin López
Profesora

19/04/2022
Fecha
Basándose en el video no. 3 y 4 realizar un programa para INSERTAR y MOSTRAR los
elementos de un árbol binario.
PRUEBA:
Queremos realizar el siguiente árbol binario:

Entonces introducimos los números:

Y el árbol binario nos queda tal que así:


CODIGO:
#include <iostream>
#include <conio.h>
#include <stdlib.h>
using namespace std;

struct Nodo
{
int dato;
Nodo* der;
Nodo* izq;
};

void menu();
Nodo* crearNodo(int);
void insertarNodo(Nodo *&,int);
void mostrarArbol(Nodo*, int);

Nodo* arbol = NULL;

int main()
{
menu();

return 0;
}

void menu()
{
int dato, opcion,contador=0;

do
{
cout << " APLICACION PARA INSERTAR Y MOSTRAR UN ARBOL BINARIO" << endl;
cout << "-------------------------------------------------------" << endl;
cout << "\t--MENU--" << endl;
cout << "1. Insertar nuevo nodo" << endl;
cout << "2. Mostrar arbol binario" << endl;
cout << "2. Salir" << endl;
cout << "Elija la opcion que desee: ";
cin >> opcion;

switch (opcion)
{
case 1: cout << "\nEscriba un numero: ";
cin >> dato;
insertarNodo(arbol, dato);
cout << "\n";
system("pause");
break;

case 2: cout << "\nArbol binario insertado:\n\n";


mostrarArbol(arbol, contador);
cout << "\n";
system("pause");
break;

}
system("cls");

} while (opcion != 2);


}

Nodo* crearNodo(int n)
{
Nodo* nuevo_nodo = new Nodo();

nuevo_nodo->dato = n;
nuevo_nodo->der = NULL;
nuevo_nodo->izq = NULL;

return nuevo_nodo;
}

void insertarNodo(Nodo*& arbol, int n)


{
if (arbol == NULL)
{
Nodo* nuevo_nodo = crearNodo(n);
arbol = nuevo_nodo;
}
else
{
int valorRaiz = arbol->dato;
if (n < valorRaiz)
{
insertarNodo(arbol->izq, n);
}
else
{
insertarNodo(arbol->der, n);
}
}
}

void mostrarArbol(Nodo* arbol, int cont)


{
if (arbol == NULL)
{
return;
}
else
{
mostrarArbol(arbol->der, cont + 1);
for (int i = 0; i < cont; i++)
{
cout << " ";
}
cout << arbol->dato << endl;
mostrarArbol(arbol->izq, cont + 1);
}
}

También podría gustarte