Aqui les dejo el código para que me digan por que no almacena los datos.
Código:
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
typedef struct nodo{
int dato;
struct nodo *derecha;
struct nodo *izquierda;
}TTT;
typedef TTT *pNodo;
TTT *arbol = NULL;
/*prototipo*/
TTT *crear(int);
void insertar(TTT *, int);
int preOrden(TTT *);
void menu();
main()
{
menu();
getch();
return 0;
}
/*FUNCION PARA CREAR UN NODO*/
TTT *crear(int n)
{
TTT *nuevo = (pNodo)malloc(sizeof(TTT));
printf("\n Ingresa un nodo: "); scanf("%d",&nuevo->dato);
nuevo->dato = n;
nuevo->derecha = NULL;
nuevo->izquierda = NULL;
return nuevo;
}
/* FUNCION PARA AÑADIR DATOS*/
void insertar(TTT *arbol, int n)
{
if(arbol == NULL)
{
TTT *nuevo = crear(n);
arbol = nuevo;
}
else
{
int ppp = arbol->dato;
if(n < ppp)
{
insertar(arbol->izquierda, n);
}
else
{
insertar(arbol->derecha, n);
}
}
}
/*RECORRIDO EN PREORDEN*/
int preOrden(TTT *arbol)
{
if(arbol == NULL)
{
return ;
}
else
{
printf(" %d -",arbol->dato);
preOrden(arbol->izquierda);
preOrden(arbol->derecha);
}
printf("\n\n\n");
}
//MENU
void menu()
{
int opc,x;
do{
printf(" MENU ARBOL \n");
printf("1. Insertar nodo\n");
printf("2. PREORDEN\n");
printf("3. Salir\n");
printf("\n Ingresa una opcion: "); scanf("%d",&opc);
switch(opc)
{
case 1: insertar(arbol,x); break;
case 2: printf("\n Recorrido en preorden: ");
preOrden(arbol); printf("\n\n\n"); break;
case 3: break;
}
system("pause");
system("cls");
}while(opc != 3);
}