Sie sind auf Seite 1von 2

#include <stdlib.

h>
#include <conio.h>
#include <stdio.h>
#include <iostream.h>
#include <time.h>
#define titulo "ARBOLES BINARIOS"

char menu[20][50]={"1- Insertar en AB","2- Preorden", "3- Inorden",


"4- PostOrden", "5- Salir"};
int cmenu=5;
typedef struct {int edad;
}tdato;
typedef struct _nodo{tdato info;
struct _nodo *izq, *der;
}tarbol;
typedef tarbol *Arbol;
void insertar(Arbol *r, tdato v);
void preorden(Arbol r);
void inorden(Arbol r);
void postorden(Arbol r);
int vermenu()
{int opc, f;
do{system ("CLS");
cout<<endl<<"***MENU**";
for (f=0;f<cmenu;f++)
{cout<<endl<<menu[f];}
cout<<endl<<"Ingrese su opcion: "; cin>>opc;
}while(opc<1 || opc>cmenu);
return opc;
}
void main()
{Arbol A1=NULL;
int op, n;
tdato r;
srand(time(NULL));

do{op=vermenu();
switch(op)
{case 1: n=1+rand()%(51-1); r.edad=n; insertar(&A1,r); break;
case 2: preorden(A1); break;
case 3: inorden(A1); break;
case 4: postorden(A1); break;
}
getch();
}while (op!=cmenu);
cout<<"Hasta Pronto...";
}
void insertar(Arbol *r, tdato v)
{if( *r==NULL)
{*r=new(tarbol); (*r)->info=v;
(*r)->izq=NULL; (*r)->der=NULL;
cout<<endl<<"Dato insertado..."; return;
}
if ((*r)->info.edad>v.edad)
{ insertar(&(*r)->izq, v);}
else if ((*r)->info.edad<v.edad)
{ insertar(&(*r)->der, v);}
else
{ cout<<endl<<"Dato duplicado...";}
}
void preorden(Arbol r)
{if(r==NULL) return;
cout<<endl<<r->info.edad;
preorden(r->izq);
preorden(r->der);
}

void inorden(Arbol r)
{if(r==NULL) return;
inorden(r->izq);
cout<<endl<<r->info.edad;
inorden(r->der);
}

void postorden(Arbol r)
{if(r==NULL) return;
postorden(r->izq);
postorden(r->der);
cout<<endl<<r->info.edad;

Das könnte Ihnen auch gefallen