post orden de un árbol binario

  Arbol binario (ABB)

Desarrollar un programa que permita mostrar los elementos de un árbol binario en post orden, 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 postorden(ABB);

void verarbol(ABB,int);


void main()
{
ABB arbol=NULL;
int n,x,opc;
  do
    {
     cout<<"menu principal"<<endl;
     cout<<"1.ingresar elementos"<<endl;
     cout<<"2.pos 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<<"pos orden : ";
      postorden(arbol);
     }
   else
   {
    cout<<"el arbol no tiene elementos";
   }
   getch();
   break;
   }//fin case3

   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 postorden(ABB arbol)
{
 if(arbol!=NULL)
   {
    postorden(arbol->izq);
    postorden(arbol->der);
    if(arbol->der==NULL && arbol->izq==NULL)
    {cout<<arbol->valor<<" ";}
   }
}
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);
}
post-orden de un árbol binario
post-orden de un árbol binario
post-orden de un árbol binario

Como se puede ver en las imágenes, el ejercicio de árbol en C++, permite realizar lo siguiente:

  •   La primera opción del menú del programa pide que se ingrese “N” cantidad de edades, en este caso se ingresaron 5 números: 7, 3, 11, 4, 24
  •   La segunda opción del menú del programa, permite ver los elementos del árbol en post orden, en este caso los números que están en post orden son: 4 y 24.
  •   La tercera opción del menú del programa, permite visualizar todos los elementos del árbol.
  •   Y finalmente la opción salir, que permite salir de la ejecución del programa .

Espero que el ejercicio te haya servido de mucha ayuda, si te ha gustado este post, no dudes en compartirlo!!

Continuando con ejercicios de Arbol binario (ABB), les comparto el siguiente post: Ver menor de menores, podar, talar, elemento de izquierda y derecha