Arboles.Cpp

Páginas: 2 (395 palabras) Publicado: 7 de mayo de 2012
#include
#include
#include
#include


#define stop printf("\n\n");system("pause")
#define cls system("cls")

typedef int Tinfo;

struct Nodoa //DEFINO UN REGISTRO QUE CONTIENE :
{Tinfo dato; //DATO QUE ES DE TIPO ARTICULO
Nodoa* ptrIzq; //ptrIzq QUE ES UN PUNTERO A UNA ESTRUCTURA STRUCT N
Nodoa* ptrDer; //ptrDer QUE ES UN PUNTERO A UNA ESTRUCTURA STRUCT N};

typedef Nodoa* PNodoa; //REDEFINO EL TIPO PUNTERO A NODO COMO EL TIPO PNODO

bool insertar(PNodoa*a,Tinfo d);
void mostrarInorden(PNodoa a);
void mostrarPreorden(PNodoa a);
voidmostrarPosorden(PNodoa a);
bool esHoja(PNodoa a);
void contarHojas(PNodoa a,int* contador);
Tinfo ingreso(char* cartel);
PNodoa buscar(PNodoa a,Tinfo d);

int main(void)
{
PNodoa a = NULL;
int n;int contador;

n=ingreso("\nINGRESE UN VALOR(CERO PARA TERMINAR): ");
while(n!=0)
{
insertar(&a,n);
n=ingreso("\nINGRESE UN VALOR(CERO PARA TERMINAR): ");
}
printf("\nINORDEN:");
mostrarInorden(a);
getch();
printf("\nPREORDEN: ");
mostrarPreorden(a);
getch();
printf("\nPOSORDEN: ");
mostrarPosorden(a);
getch();

contador=0;
contarHojas(a,&contador);printf("\nLA CANTIDAD DE HOJAS DEL ARBOL ES: %d ",contador);
getch();
n=ingreso("\nINGRESE UN VALOR A BUSCAR EN EL ARBOL: ");
if(buscar(a,n)==NULL)
{
printf("\nNO ESTA!! ");
}else
{
printf("\nSI ESTA!! ");
}
getch();
return 0;
}

PNodoa buscar(PNodoa a,Tinfo d)
{
if(a==NULL)
{
return NULL;
}
else
{
if(d < a->dato)
{return buscar(a->ptrIzq,d);
}
else
{
if(d > a->dato)
{
return buscar(a->ptrDer,d);
}
else
{
return a;
}
}
}
}

Tinfoingreso(char* cartel)
{
Tinfo n;

printf("\n%s\n",cartel);
printf ("NUMERO: ");fflush(stdin);scanf("%d",&n);
return n;
}
void contarHojas(PNodoa a,int* contador)
{...
Leer documento completo

Regístrate para leer el documento completo.

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS