Programacion

Páginas: 2 (418 palabras) Publicado: 23 de octubre de 2011
#include
#include
#include
typedef struct arbol Arbol;
struct arbol
{ int Valor;
Arbol *Izq;
Arbol *Der;
};

void Inicializa (Arbol **A)
{ (*A)=NULL;
(*A)->Izq=NULL;(*A)->Der=NULL;
}

int VerificaVacio (Arbol *A)
{ return (A==NULL)? 1:0;
}

void Inserta (Arbol **A, Arbol *Nodo)
{
if (VerificaVacio ((*A)))
{ Nodo->Izq=NULL;
Nodo->Der=NULL;(*A)=Nodo;
}
else
{ if (Nodo->Valor < (*A)->Valor)
{
Inserta (&(**A).Izq, Nodo);
}
else
{
Inserta (&(**A).Der, Nodo);
}
}
}

voidElimina_Hojas (Arbol *A)
{
if (A->Izq->Izq==NULL && A->Izq->Der==NULL)
{ if (A->Izq!=NULL)
{ printf ("\n %d Eliminado...",A->Izq->Valor);
free (A->Izq);
A->Izq=NULL;
}}
else
Elimina_Hojas (A->Izq);
if (A->Der->Izq==NULL && A->Der->Der==NULL)
{ if (A->Der!=NULL)
{ printf ("\n %d Eliminado...",A->Der->Valor);
free (A->Der);A->Der=NULL;
}
}
else
Elimina_Hojas(A->Der);
}

void Elimina_Arbol (Arbol **A)
{
if (!VerificaVacio((*A)))
{ while((*A)->Izq!=NULL || (*A)->Der!=NULL)Elimina_Hojas((*A));
if (!VerificaVacio((*A)))
{ printf("\n %d Eliminado...",(*A)->Valor);
free((*A));
(*A)=NULL;
}
}
}

void Muestra(Arbol *A,int niv)
{if(!VerificaVacio (A))
{ niv++;
printf("\n nivel %6d : %6d",niv,A->Valor);
Muestra(A->Izq,niv);
Muestra(A->Der,niv);
}
}

void Menu (int Opc)
{ int C;textcolor(15);
gotoxy(12,2);
cprintf("- > MENU < -");
if(Opc==1) C=10; else C=2;
textcolor(C);
gotoxy(1,4);
cprintf("Insert ¢ + 1 Insertar un nuevo Nodo");
if(Opc==2)C=11;else C=3;
textcolor(C);
gotoxy(1,5);
cprintf("Supr ¢ - 2 Eliminar el µrbol");
if(Opc==3) C=13;else C=5;
textcolor(C);
gotoxy(1,6);
cprintf("I ¢ i 3...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Programación
  • Programacion
  • Programacion
  • Programación
  • Programacion
  • Programacion
  • Programacion
  • Programacion

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS