[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