#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <string.h>
#include <todas.h>
void datos (void)
{
system("color 6");
int a=15,b=8;
gotoxy (a,b);
printf ("Edith Juarez Juarez \n\n");
int c=20,d=5;
gotoxy (c,d);
printf ("Grupo 351\n\n");
for(int x=3;x<=40;x++){
gotoxy(x,3);
printf("*");
}
for(int x=3;x<=40;x++){
gotoxy(x,10);
printf("*");
}
// getch();
}
struct nodoarbol{
struct nodoarbol *izqnodo;
int info;
char letra; //let
struct nodoarbol *dernodo;
};
typedef struct nodoarbol NODO;
typedef NODO *ARBOL;
void insertanodonuevo(ARBOL *, int,char);
void inorden (ARBOL);
void preorden (ARBOL);
void postorden (ARBOL);
void treefree (ARBOL);
main()
{
datos();
int i,m,num;
char newnod, chain ;
ARBOL raiz=NULL;
printf("\nDigite cuandos nodos quiere insertar\n");
scanf("%d",&m);
for (i=0;i<m;i++)
{
fflush(stdin);
printf("Introduzca numero y numero : ");
scanf("%d %c",&num,&chain);
fflush(stdin);
insertanodonuevo(&raiz,num,chain);
}
printf("\nPreorden \n");
preorden(raiz);
printf("\ninorden \n");
inorden(raiz);
printf("\nPostorden \n");
postorden(raiz);
getch();
treefree(raiz);
raiz=NULL;
return 0;
}
void insertanodonuevo(ARBOL *rarbol, int nuevo,char l)
{
if (*rarbol==NULL)
{
*rarbol=(NODO *)malloc(sizeof(NODO));
if(*rarbol!=NULL)
{
(*rarbol)->info=nuevo;
(*rarbol)->letra=l;
(*rarbol)->izqnodo=NULL;
(*rarbol)->dernodo=NULL;
}
else {printf("memoria no disponible\n");}
}
else
if(nuevo<(*rarbol)->info)
insertanodonuevo(&((*rarbol)->izqnodo),nuevo,l);
else
if(nuevo>(*rarbol)->info)
insertanodonuevo(&((*rarbol)->dernodo),nuevo,l);
}
void preorden (ARBOL rarbol)
{
if(rarbol!=NULL)
{
printf("%d",rarbol->info);
printf("%c",rarbol->letra);
preorden(rarbol->izqnodo);
preorden(rarbol->dernodo);
}
}
void inorden(ARBOL rarbol)
{
if(rarbol!=NULL)
{
inorden(rarbol->izqnodo);
printf("%d", rarbol->info);
printf("%c",rarbol->letra);
inorden(rarbol->dernodo);
}
}
void postorden(ARBOL rarbol)
{
if(rarbol!=NULL)
{
postorden(rarbol->izqnodo);
postorden(rarbol->dernodo);
printf("%d", rarbol->info);
printf("%c",rarbol->letra);
}
}
void treefree(ARBOL rarbol)
{
if(rarbol!=NULL)
{
treefree (rarbol->izqnodo);
treefree(rarbol->dernodo);
treefree (rarbol);
}
}





