domingo, 18 de julio de 2021

OPERACIONES CON ARBOLES BINARIOS DE BÚSQUEDA

 


Insertar un nodo en el arbol 

 La inserción es similar a la búsqueda y se puede dar una solución tanto iterativa como recursiva. Si tenemos inicialmente como parámetro un árbol vacío se crea un nuevo nodo como único contenido el elemento a insertar. Si no lo está, se comprueba si el elemento dado es menor que la raíz del árbol inicial con lo que se inserta en el subárbol izquierdo y si es mayor se inserta en el subárbol derecho.


Ejemplo:


#include<iostream>

#include<conio.h>

#include<stdlib.h>

using namespace std;


struct Nodo{

int dato;

Nodo *der; 

Nodo *izq;

};


//Prototipos

void menu();

Nodo *crearNodo(int);

void insertarNodo(Nodo *&,int); 


Nodo *arbol = NULL;


int main(){

menu();

getch();

return 0;

}


//Funcion de menu

void menu(){

int dato,opcion;

do{

cout<<"\t.:MENU:."<<endl;

cout<<"1. Insertar un nuevo nodo"<<endl;

cout<<"2. Salir"<<endl;

cout<<"Opcion: ";

cin>>opcion;

switch(opcion){

case 1: cout<<"\nDigite un numero: ";

        cin>>dato;

        insertarNodo(arbol,dato,NULL); //Insertamos un nuevo nodo

cout<<"\n";

system("pause");

break; 

}

system("cls");

}while(opcion != 2);

}


//Funcion para crear un nuevo nodo

Nodo *crearNodo(int n,Nodo *padre){

Nodo *nuevo_nodo = new Nodo();

    nuevo_nodo ->dato = n;

nuevo_nodo ->der = NULL;

nuevo_nodo ->izq = NULL;

 

return nuevo_nodo;

}


//Funcion para insertar elementos en el arbol

void insertarNodo(Nodo *&arbol,int n,Nodo *padre){

if(arbol == NULL){ //Si el arbol esta vacio

    Nodo *nuevo_nodo = crearNodo(n,padre);

    arbol = nuevo_nodo;

}

else{ //Si el arbol tiene un nodo o mas

    int valorRaiz = arbol->dato; //Obtenemos el valor de la raiz

    if(n < valorRaiz){ //Si ele elemento es menor a la raiz, insertamos en izq

        insertarNodo(arbol->izq,n,arbol);

}

else{//Si el elemento es mayor a la raiz, insertamos en der

    insertarNodo(arbol->der,n,arbol);

}

}

}



Video

https://youtu.be/Gc69b-VyEgU





No hay comentarios.:

Publicar un comentario

PRESENTACIÓN

            Universidad de Panamá Centro Universitario de Coclé Programación II Semestral Arboles y Grafos Profesora: Dayalis Vargas Estudia...