En orden de un árbol (ABB)

  Arbol binario (ABB)

Mediante programación en C++, desarrollar un programa que tenga un menú de 4 opciones, que permita ingresar elementos, mostrar los elementos de un árbol binario (ABB) en-orden y luego mostrar todos los elementos del árbol ingresados por teclado.

#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 enorden(ABB);
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.en orden"<<endl;
     cout<<"3.visualizar arbol"<<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:{
    if(arbol!=NULL)
     {
      cout<<endl<<"en orden : ";
      enorden(arbol);
     }
   else
   {
    cout<<"el arbol no tiene elementos";
   }
   getch();
   break;
   }//fin case4
   case 3:{
    cout<<"  visualizacion del arbol "<<endl<<endl;
    if(arbol!=NULL)
      {
       verarbol(arbol,0);
      }
    else
      {
       cout<<"el arbol no tiene elementos";
      }
    getch();
    break;
   }//fin case5




  }//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 enorden(ABB arbol)
{
 if(arbol!=NULL)
   {
    enorden(arbol->izq);
    cout<<arbol->valor<<" ";
    enorden(arbol->der);
   }
}

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);
}
en orden de un árbol (ABB)
en orden de un árbol (ABB)
en orden de un árbol (ABB)

Como se puede ver en las imágenes, el programa en orden de un árbol (ABB), permite realizar lo siguiente:

  •   La primera opción del menú de la aplicación, pide que se ingrese la cantidad de edades (n), luego ingresar cada una de las edades (x) que tendrá el a´rbol (ABB).
  •   La segunda opción del menú, permite ver los elementos del árbol en orden.
  •   La tercera opción del menú de la aplicación, permite visualizar todas las edades que se ingresaron al árbol (ABB).
  •   Y finalmente salir, la última opción del menú que nos permite salir de la ejecución del programa .

Espero te haya gustado 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