Ver Mensaje Individual
  #1 (permalink)  
Antiguo 28/09/2009, 10:20
Avatar de thebestboy2671
thebestboy2671
 
Fecha de Ingreso: enero-2008
Mensajes: 138
Antigüedad: 17 años
Puntos: 1
Pregunta Recorridos en un arbol binario en c++

Hola a todos, después de buscar por todos lados, aún no doy en cómo imprimir el recorrido preorden de mi arbol binario. El programa no tiene error de sintaxis, pero lo que pasa es que cuando se va a generar la impresion, la misma arroja basura, puedo pensar que el error esta en la parte donde se leen los valores del nodo, en verdad no tengo ni la más mínima idea de qué es lo que está mal. Les agradeceria cualquier tipo de ayuda. Saludos.
Código:
#include <iostream.h>

#include <conio.h>

#include <stdio.h>

#include <stdlib.h>

#include <string.h>

#define NULL 0

//

//Programa que carga los nodos de un �rbol binario en memoria.

struct treenodo {

   struct treenodo *izqptr;  //puntero al nodo izquierdo

   char dato[40];     //dato del nodo

   struct treenodo *derptr; // puntero al nodo derecho

};



void crear(treenodo *nodo){ //crea un �arbol binario

char resp[1];

clrscr();

cout<< "Entre el dato ";

gets (nodo->dato);

cout <<"Hay nodos a la Izquierda entre S/N ";

gets(resp);

if (strcmp(resp, "S")== 0) {

    nodo->izqptr= new (treenodo);

    crear(nodo->izqptr); }

else

    nodo->izqptr=NULL;

    cout <<"Hay nodos a la Derecha entre S/N ";

    gets(resp);

    if (strcmp(resp, "S")== 0) {

       nodo->derptr= new (treenodo);

       crear(nodo->derptr); }

   else

       nodo->derptr=NULL;

return;

}



//Recorrido en Pre-Orden



void preorden(treenodo *nodo){

  if (nodo != NULL) {

    printf("%c", nodo->dato);   //Realiza una operación en nodo

	preorden(nodo->izqptr);

    preorden(nodo->derptr);

  }

}



void main(int){

treenodo *nodo;   // puntero al nodo

nodo= new treenodo;

crear(nodo);

preorden(nodo);

getch();

}
__________________
Si te he ayudado con mis conocimientos, añádeme algo de Karma :P