Vous êtes sur la page 1sur 3

//---------------------------------------------------------------------------

#include <iostream.h>
#include <stdlib.h>
#include <iomanip.h>
#include <string.h>
#include <ctype.h>
//---------------------------------------------------------------------------
typedef char datos;

typedef struct nodoarbol


{
datos info;
nodoarbol *izq;
nodoarbol *der;
}NODOARBOL;
//-----------------------------------------
// recorridos de un álbol binario
//-----------------------------------------
void inOrden(NODOARBOL * Raiz)
{
if(Raiz != NULL)
{
inOrden(Raiz->izq);
cout<<Raiz->info<<" ";
inOrden(Raiz->der);
}
}
//-----------------------------------------
//-----------------------------------------
void preOrden(NODOARBOL * Raiz)
{
if(Raiz != NULL)
{
cout<<Raiz->info<<" ";
preOrden(Raiz->izq);
preOrden(Raiz->der);
}
}
//-----------------------------------------
//-----------------------------------------
void postOrden(NODOARBOL * Raiz)
{
if(Raiz != NULL)
{
postOrden(Raiz->izq);
postOrden(Raiz->der);
cout<<Raiz->info<<" ";
}
}
//-----------------------------------------
//-----------------------------------------
void AgregarNodo(NODOARBOL **Raiz, datos info)
{
if(*Raiz == NULL)
{
NODOARBOL * NuevoNodo = new NODOARBOL;
if(NuevoNodo == NULL)
return;

NuevoNodo->izq = NULL;
NuevoNodo->der = NULL;
NuevoNodo->info = info;

*Raiz = NuevoNodo;
return;
}
else
{
if(info < ((*Raiz)->info))
AgregarNodo(&(*Raiz)->izq, info);
else
if(info > ((*Raiz)->info))
AgregarNodo(&(*Raiz)->der, info);
}
}
//-----------------------------------------
//-----------------------------------------
void EliminarArbol(NODOARBOL * Raiz)
{
if(Raiz != NULL)
{
EliminarArbol(Raiz->izq);
EliminarArbol(Raiz->der);
delete Raiz;
}
}
//-----------------------------------------
//-----------------------------------------
int main()
{
NODOARBOL *Arbol=NULL;
int valor;

AgregarNodo(&Arbol,'D');
AgregarNodo(&Arbol,'B');
AgregarNodo(&Arbol,'C');
AgregarNodo(&Arbol,'F');
AgregarNodo(&Arbol,'A');
AgregarNodo(&Arbol,'E');
AgregarNodo(&Arbol,'G');

cout<<"Recorrido de Arboles"<<endl<<endl;

cout<<"Recorrido inorden"<<endl<<endl;
inOrden(Arbol);

cout<<endl<<"Recorrido preorden"<<endl;
preOrden(Arbol);

cout<<endl<<"Recorrido postorden"<<endl;
postOrden(Arbol);

cin>> valor;
EliminarArbol(Arbol);
}

Vous aimerez peut-être aussi