Pre orden de un árbol (ABB)

Árbol binario (ABB)

Mediante programación en C++, Desarrollar un programa que permita mostrar todos los elementos de un árbol, así como imprimir el pre orden de los elementos ingresados en el árbol ABB.

#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 preorden(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.pre 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<<"pre orden : ";
      preorden(arbol);
     }
   else
   {
    cout<<"el arbol no tiene elementos";
   }
   getch();
   break;
   }//fin case2


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

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

  •   La primera opción del menú del programa, permite ingresar la cantidad de edades (n) que tendrá el árbol ABB, y al mismo tiempo ingresar cada una de las edades (x).
  •   La segunda opción del menú del programa, permite ver los elementos del árbol en orden.
  •   La tercera opción del menú de la aplicación, 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 de árbol ABB en C++, te haya servido de mucha ayuda, 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