[C con Clase] Estructura de datos (arbol) porfavor prueba en tu compilador este codigo? (mi prueba es hoy en la mañana)

Jorge Mendez freecom4ever en gmail.com
Jue Jul 14 06:28:08 CEST 2011


Saludos listeros
No es mi intencion ofender a nadie y no es costumbre mia molestar así a las
personas, desde ya es una oportunidad excelente tenerlos en la lista y
porfavor disculpen que mande este mensaje tan deprisa.

Mi prueba es hoy en la tarde como a las 13 horas ;) (son las 00:18) así que
si no pueden escribir ahora, no se preocupen ;) y de verdad les pido perdón
escribir tan apurado.

Mi profe me envio una "biblioteca con las funciones de la lista" y venia mal
escrita... la estuve arreglando y ahora me compila, pero me envia un
"Segmentation fault" y ya se me acabaron las ideas.

Estoy usando el IDE Codeblocks en Linux, pero mi profe usa windows con
compiladores de pago (de hecho a mi profesor no le gusta que use software
libre) de repente puede ser el compilador... no lo se...

Te pido un segundo compila el codigo que te envio y ve si te dice
"segmentation fault" y si tienes otro segundo mas dime si te imaginas porque
no funciona :D.

Muchas gracias por leerme ;)
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20110714/ff1e5402/attachment.html>
------------ próxima parte ------------
// Autor : Pedro ALfonso Fuentealba.
// ---------------------------------

#include <stdio.h>
#include <malloc.h>

struct nodo_arbol {
int info;
struct nodo_arbol *ri;
struct nodo_arbol *rd;
};

#define Arbol struct nodo_arbol


Arbol *insertar_nodo_arbol (Arbol *par, int n)
{

     if (par == NULL)
     {
	    par = (Arbol *) malloc (sizeof(Arbol));

	    if (par != NULL)
	    {
		   par->info =  n;
		   par->ri = NULL;
		   par->rd = NULL;
	    }
	    else
		    printf ("No hay memoria...\n");
     }
     else
	     if (n <= par->info)
		    par->ri = insertar_nodo_arbol (par->ri,n);
	     else
		     par->rd = insertar_nodo_arbol (par->rd,n);

     return (par);
}

Arbol *eliminar_arbol (Arbol *par)
{
      if (par != NULL)
      {
         if ( (par->ri = NULL) && (par->rd = NULL))
         {
            free (par);
            par = NULL;
            return (par);
         }
         else
              {
                 par->ri = eliminar_arbol (par->ri);
                 par->rd = eliminar_arbol (par->rd);
                 par = eliminar_arbol (par);
               }
      }
      return (NULL);
}
void main()
{
        Arbol * par;    //puntero de arbol
    //inicio
        par = NULL;     //arbol vacio
        par = insertar_nodo_arbol (par, 70);
        par = insertar_nodo_arbol (par, 30);
        par = insertar_nodo_arbol (par, 100);
        printf ("arbol creado ?\n\n");
        par = eliminar_arbol(par);
}


Más información sobre la lista de distribución Cconclase