Talar un árbol (ABB)
Arbol binario (ABB)
Mediante programación en C++, hacer un programa que permita mostrar todos los elementos de un árbol (ABB) y talar el árbol (ABB). El programa contiene un menú de 4 opciones: Ingresar elementos, visualizar árbol, talar y salir.
#include <iostream.h>
#include <conio.h>
struct nodo
{
int valor;
struct nodo* izq;
struct nodo* der;
};
typedef struct nodo *ABB;
void inserta(ABB& ,int);
void verarbol(ABB,int);
void main()
{
ABB arbol=NULL;
ABB subarbol=NULL;
int n,x,opc,a;
do
{
cout<<"menu principal"<<endl;
cout<<"1.ingresar elementos"<<endl;
cout<<"2.visualizar arbol"<<endl;
cout<<"3.talar"<<endl;
cout<<"0.salir"<<endl;
cout<<"=========================="<<endl;
cout<<"ingrese una opcion: ";cin>>opc;
switch(opc)
{
case 1:{
cout<<"ingrese cantidad de elem. al arbol: ";cin>>n;
for(int i=0;i<n;i++)
{
cout<<"ingrese numero"<<i<<" : ";cin>>x;
inserta(arbol,x);
}
getch();
break;
}//fin case1
case 2:{
cout<<" visualizacion del arbol "<<endl<<endl;
if(arbol!=NULL)
{
verarbol(arbol,0);
}
else
{
cout<<"el arbol no tiene elementos";
}
getch();
break;
}//fin case5
case 3:{
if(arbol!=NULL)
{
arbol=NULL;
cout<<"el arbol fue talado con exito";
}
else
{
cout<<"el arbol no tiene elementos";
}
getch();
break;
}
//fin case 10
}//fin switch
clrscr();
}while(opc!= 0);
}//fin main.
/*************************** funciones **************************/void inserta(ABB &arbol,int x)
{
if(arbol==NULL)
{
arbol=new(struct nodo);
arbol->valor=x;
arbol->izq=NULL;
arbol->der=NULL;
}
else
{
if(x<arbol->valor) inserta(arbol->izq,x);
else
if(x>arbol->valor) inserta(arbol->der,x);
}
}
void verarbol(ABB arbol, int nro)
{
int i;
if(arbol==NULL)return;
verarbol(arbol->der,nro+1);
for(i=0;i<nro;i++)
cout<<" ";
cout<<arbol->valor<<endl;
verarbol(arbol->izq,nro+1);
}
Como se puede ver en las imágenes, el programa c++ : talar un árbol en C++, permite realizar lo siguiente:
El programa pide que se ingrese la cantidad de elementos (n) que tendrá el árbol (ABB) y luego pide que se ingrese cada uno de estos elementos.
La segunda opción del menú, muestra todos los elementos que se ingresaron al árbol (ABB).
La tercera opción del menú permite talar el árbol. (luego ver la opción de visualizar árbol, para verificar que se taló el árbol).
Y finalmente la opción salir, la cual permite salir de la ejecución del programa.
Espero que este ejercicio de árbol (ABB) en C++ pudo ayudarte y si te gustó este post, no dudes en compartirlo!!
Continuando con Arbol binario (ABB), les comparto el siguiente post: Ver menor de menores, podar, talar, elemento de izquierda y derecha