miércoles, 25 de enero de 2012

Arbol_Codigo

#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <windows.h>

struct arbol{
int info;
struct arbol *left;
struct arbol *right;
};
typedef struct arbol nodetree;
typedef nodetree *arbolptr;
void insertar(arbolptr*L, int b);
void imprimir(arbolptr L);
void entreorden(arbolptr L);
void instrucciones();
main()
{
arbolptr L=NULL;
int inf, opcion;
instrucciones(),
printf(" \n Seleciona la opcion: ");
scanf("%d",&opcion);
while(opcion!=4){
switch(opcion)
{
case 1:{
printf("\n Introduzca el elemento: ");
scanf("%d",&inf);
insertar(&L,inf);
system("cls");
instrucciones();
break;
}
case 2: {
printf("\n Recorrido en orden\n");
entreorden(L);
printf("\t\n\nPresiona enter para continuar...");
getch();
system("cls");
instrucciones();
break;
}
case 3: {
printf("\n Imprimir el Arbol\n");
imprimir(L);
printf("\tPresiona enter para continuar...");
getch();
system("cls");
instrucciones();
break;
}
case 4: {
printf("Fin del programa");
break;
}
default:
printf("\nOperacion invalida intentelo de Nuez\n");
printf("\t\nPresiona enter para continuar...");
getch();
system("cls");
instrucciones();
break;
}
printf("\n Selecciona una Opcion: ");
scanf("%d",&opcion);
}
printf("Fin del proyecto");
return 0;
}
void instrucciones()
{
printf("\n\n\t\t Recorrido de un Arbol");
printf(" \n\n Menu principial\n");
printf("\n 1- Introducir un elemento al arbol");
printf("\n 2- Recorrido en Orden");
printf("\n 3- Imprimir el arbol");
printf("\n 4- Salir\n\n");
}
void insertar(arbolptr*r,int x)
{
arbolptr pnuevo,panterior,pactual;
pnuevo=(arbol*)malloc(sizeof(arbol));
if(pnuevo!=NULL)
{
pnuevo->info=x;
pnuevo->right=NULL;
pnuevo->left=NULL;
panterior=NULL;
pactual=*r;
printf("%d",pnuevo->info);
while(pactual!=NULL && x>pactual->info)
{
panterior=pactual;
pactual=pactual->left;
}
if(panterior==NULL)
{
pnuevo->left=*r;
*r=pnuevo;
}
else
{
panterior->left=pnuevo;
pnuevo->left=pactual;
}
}
}
void imprimir(arbolptr pactual)
{
if(pactual==NULL)
printf("\n El arbol esta vacio\n\n");
else
{
printf("\n La cadena de elementos del Arbol es: ");
while(pactual!=NULL)
{
printf("%d->",pactual->info);
pactual=pactual->left;
}
printf("NULO\n\n");
}
}
void entreorden(arbolptr pactual)
{
if(pactual!=NULL)
{
entreorden(pactual->left);
printf("\n%d",pactual->info);
entreorden(pactual->right);
}
}

No hay comentarios:

Publicar un comentario