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);
}
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