Arbol (BB)

c++ – preorden postorden y enorden

Mediante programación en C++, desarrollar un programa que permita insertar y ver elemento de un árbol, así como el pre-orden, post-orden y en-orden.

#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 postorden(ABB);
void enorden(ABB);
void verArbol(ABB,int);

void main(void)
{ABB arbol=NULL;
 int n,x,des;
 cout<<"Cantidad de elementos del arbol: ";
 cin>>n;
 for(int i=0;i<n;i++)
  {cout<<"Ingrese nodo numero"<<i<<": ";
   cin>>x;
   inserta(arbol,x);
  }
 verArbol(arbol,0);
 cout<<endl<<"Preorden: "; preorden(arbol);
 cout<<endl<<"postorden: "; postorden(arbol);
 cout<<endl<<"Enorden: "; enorden(arbol);
 getch();
}

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);
} //si es igual no se inserta
void preorden(ABB arbol)
{if(arbol!=NULL)
 {cout<<arbol->valor<<" ";
  preorden(arbol->izq);
  preorden(arbol->der);
 }
}
void enorden(ABB arbol)
{if(arbol!=NULL)
  {enorden(arbol->izq);
   cout<<arbol->valor<<" ";
   enorden(arbol->der);
  }
}
void postorden(ABB arbol)
{if(arbol!=NULL)
 {postorden(arbol->izq);
  postorden(arbol->der);
  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);
}


Arbol (BB) - preorden

Continuando con Arbol binario (ABB), les comparto el siguiente post: buscar un elemento, el elemento mayor, el elemento menor y el menor de los mayores