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();
}