Programa Arbol

Páginas: 2 (393 palabras) Publicado: 14 de marzo de 2013
/**********************************************
Programa: arbol.c
Funcion: Operaciones basicas con arboles
binarios
Autor:
Fecha:**********************************************/

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

typedef struct nodo {
int clave;
struct nodo *izq, *der;
} NODO;

NODO *raiz = NULL;

void alta() {
int clave;
NODO*previo, *actual;
printf("Clave: ");
scanf("%d",&clave);
previo = NULL; actual = raiz;
while(actual && actual->clave != clave) {
previo = actual;
if(actual->clave< clave)
actual = actual->der;
else
actual = actual->izq;
}
if(actual)
printf("La clave ya existe!\n");
else {
actual = (NODO *) malloc(sizeof(NODO));actual->clave = clave;
actual->izq = NULL;
actual->der = NULL;
if(previo)
if(previo->clave < clave)
previo->der = actual;
elseprevio->izq = actual;
else
raiz = actual;
}
}

void reporte(NODO *actual, int nivel) {
int i;
if(actual) {
reporte(actual->izq,nivel+1);
for(i=0; i<nivel; ++i)printf("\t");
printf("%d\n",actual->clave);
reporte(actual->der,nivel+1);
}
}

void preorden(NODO *actual) {
if(actual) {
printf("%4d",actual->clave);preorden(actual->izq);
preorden(actual->der);
}
}

void enorden(NODO *actual) {
if(actual) {
enorden(actual->izq);
printf("%4d",actual->clave);
enorden(actual->der);}
}

void postorden(NODO *actual) {
if(actual) {
postorden(actual->izq);
postorden(actual->der);
printf("%4d",actual->clave);
}
}

void recorridos() {printf("Preorden: ");
preorden(raiz);
printf("\n");
printf("Enorden: ");
enorden(raiz);
printf("\n");
printf("Postorden: ");
postorden(raiz);
printf("\n");
}

void...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • arboles en la teoría de grafos y un programa en c
  • arboles
  • El arbol
  • Arboles
  • Arbol
  • Arboles
  • Arbol
  • arboles

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS