Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: josue_tux en 25 Junio 2011, 02:48 am



Título: ayuda en arboles binarios
Publicado por: josue_tux en 25 Junio 2011, 02:48 am
Bueno mi problema es el siguiente:  diseñe un programa con arboles binarios, que imprima el recorrido inorden de los siguientes datos 1, 6 , 4 , 10, 12, 8. Nota el usuario no debe digitar ningu dato.

bueno , al compilar el programa no me da ningun error, pero no me imprime  el recorrido en Inorden de mi arbol no se en que me estoy equivocando, si me pueden decir, les adjunto el codigo:



Código:

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

typedef int Tipo_elemento;

struct nodo
{
    Tipo_elemento el;
    struct nodo *izq, *der;
};

typedef struct nodo NODO;

NODO* Crear_nodo(Tipo_elemento el);
NODO* Construir(Tipo_elemento el, NODO *izq, NODO *der);

//recibe como parametro un arbol y retorna su hijo izquierdo
NODO* Hijo_izq(NODO *a);

/recibe como parametro un arbol y retorna su hijo derecho
NODO* Hijo_der(NODO *a);

/*------------------- Recoridos del arbol binario ---------------------*/
void Inorden(NODO *a);


/*---------------------------------------------------------------------*/

NODO* Crear_nodo(Tipo_elemento el)
{
   NODO *nuevo;
   nuevo=(NODO*)malloc(sizeof(NODO));
   nuevo->el=el;
   nuevo->izq = nuevo->der = NULL;
   return nuevo;
}
NODO* Construir(Tipo_elemento el, NODO *izq, NODO *der)
{
   NODO *nn;
   nn=Crear_nodo(el);
   nn->izq=izq;
   nn->der=der;
   return (nn);
}
NODO* Hijo_izq(NODO *a)
{
   if(a)
     return (a->izq);
   else
      {
 return (NULL);
      }
}
NODO* Hijo_der(NODO *a)
{
   if(a)
     return (a->der);
   else
      {
 return (NULL);
      }
}

void main()
{
     NODO *raiz=NULL;
     Construir(1,izq,der); Construir(6,NULL,NULL);  Construir(4,NULL,NULL);
     Construir(10,izq,der); Construir(12,NULL,NULL);  Construir(8,NULL,NULL);
    
     printf("El recorrido en inorden sera:");
     Inorden(raiz);
     getchar();
}

void Inorden(NODO *a)
{
    if(a)
      {
 Inorden(a->izq);
 printf("%d", a->el);
 Inorden(a->der);
      }
}







Título: Re: ayuda en arboles binarios
Publicado por: satu en 25 Junio 2011, 14:10 pm
No te da errores al compilar?? a mi sí

Citar

error: 'izq' undeclared (first use in this function)
error: 'der' undeclared (first use in this function)


no tienes declarado 'izq' y 'der' en el main y los utilizas en 'Construir'

Además main debe devolver un int

Saludos