Foros del Web » Programación para mayores de 30 ;) » C/C++ »

que esta mal en este codigo de arbol binario

Estas en el tema de que esta mal en este codigo de arbol binario en el foro de C/C++ en Foros del Web. hola a la comunidad del foro saveb de k tengo un problema con un arbol binariot que tiene que ver con los ordenes k utiliza ...
  #1 (permalink)  
Antiguo 28/03/2009, 16:19
 
Fecha de Ingreso: marzo-2009
Mensajes: 2
Antigüedad: 15 años, 1 mes
Puntos: 0
Pregunta que esta mal en este codigo de arbol binario

hola a la comunidad del foro saveb de k tengo un problema con un arbol binariot que tiene que ver con los ordenes k utiliza el preOrden el inOrden y postOrden de busqueda el cual no he podido solucionar ya tengo un error k me dice

cannont convert' void*' to 'treeNode*'


a no ser k sea k el programe k use este ekivocado tambien seria de gran ayuda si me dijieran en k lenguaje seriarecomendable usar este programa



eso con el programa k uso el cual es el
turbo c++ espero y me puedan ayudar nos vemos y gracias

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

struct treeNode{
struct treeNode *leftPtr;
int data;
struct treeNode *rightPtr;
};

typedef struct treeNode TREENODE;
typedef TREENODE * TREENODEPTR;

void insertNode(TREENODEPTR*, int);
void inOrder(TREENODEPTR);
void preOrder(TREENODEPTR);
void postOrder(TREENODEPTR);

main()
{
int i, item;
TREENODEPTR rootPtr= NULL;

srand(time(NULL));


for(i=1; i<=10; i++){
item= rand()%15;
printf("%3d", item);
insertNode(&rootPtr,item);
}

printf("\n\nel proceso de preOrder es:\n");
preOrder(rootPtr);

printf("\n\nel proceso inOrder es:\n");
inOrder(rootPtr);

printf("\n\nThe postOrder es:\n");
postOrder(rootPtr);

return 0;

}

void insertNode(TREENODEPTR *treePtr, int value)
{
if(*treePtr==NULL){
/* *treePtr is NULL */
treePtr=malloc(sizeof(TREENODE)); --------- aki esta el error segun el compilador
if(*treePtr !=NULL){
(*treePtr)->data=value;
(*treePtr)->leftPtr= NULL;
(*treePtr)->rightPtr=NULL;
}
else
printf("&3d no insertado. No hay memoria disponible.\n",value);

}
else
if(value < (*treePtr)->data)
insertNode(&((*treePtr)->leftPtr), value);
else
if(value >(*treePtr)->data)
insertNode(&((*treePtr)->rightPtr), value);
else
printf("dup");
}

void inOrder(TREENODEPTR treePtr)
{
if(treePtr != NULL){
inOrder(treePtr->leftPtr);
printf("%3d", treePtr->data);
inOrder(treePtr->rightPtr);
}
}

void preOrder(TREENODEPTR treePtr)
{
if(treePtr !=NULL) {
printf("%3d", treePtr->data);
preOrder(treePtr->leftPtr);
preOrder(treePtr->rightPtr);
}
}

void postOrder(TREENODEPTR treePtr)
{
if(treePtr != NULL){
postOrder(treePtr->leftPtr);
postOrder(treePtr->rightPtr);
printf("%3d", treePtr->data);
}
}
  #2 (permalink)  
Antiguo 28/03/2009, 18:10
Avatar de Eternal Idol  
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 20 años
Puntos: 74
Respuesta: que esta mal en este codigo de arbol binario

No mire (ni lo hare) el resto del codigo pero el error (que es muy evidente) es no hacer el casting necesario, el tipo devuelto por malloc es void* y tu variable es del tipo de datos del arbol (en C funcionaria al ser solo un warning). ¿Lo escribiste vos?

Código:
treePtr = (TREENODEPTR*)malloc(sizeof(TREENODE));
__________________
¡Peron cumple, Evita dignifica! VIVA PERON CARAJO
  #3 (permalink)  
Antiguo 28/03/2009, 19:08
 
Fecha de Ingreso: marzo-2009
Mensajes: 2
Antigüedad: 15 años, 1 mes
Puntos: 0
Pregunta Respuesta: que esta mal en este codigo de arbol binario

no ps primero k nada muchisimas gracias el programa ha funcionado perfectamente

y ps el programa lo hice apollandome en un libro de como programar en c++

como apenas voy empesando en esto de la programacion ando batallando un poco

jejej pero muchas gracias por ayudarme

nos vemos y gracias por tu tiempo en resolver este problema
  #4 (permalink)  
Antiguo 29/03/2009, 01:53
Avatar de Eternal Idol  
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 20 años
Puntos: 74
Respuesta: que esta mal en este codigo de arbol binario

De nada, ese codigo es de C.
__________________
¡Peron cumple, Evita dignifica! VIVA PERON CARAJO
  #5 (permalink)  
Antiguo 05/04/2009, 14:13
 
Fecha de Ingreso: abril-2009
Mensajes: 3
Antigüedad: 15 años
Puntos: 0
Respuesta: que esta mal en este codigo de arbol binario

entra www algoritmia net y ahi encontraras muy buena informacion sobre estructura de datos incluyendo arboles y ademas codigos en eejmplo en C.

En su momento me ayudo mas esa pagina que un libro que compre
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:02.