Código (cpp) [Seleccionar]
using namespace std;
typedef struct arbol{
int id;
char nombre[20];
char fecha[10];
int existencia;
struct arbol *izquierda,*derecha;
};
arbol* insercion(arbol*,int,char[],char[],int);
char menu();
void captura(arbol*);
void inOrder(arbol *);
void mostrar(arbol*,int,char[],char[],int);
void validar_letras (char *p);
char getchass ();
void insert(int key, struct node **leaf);
main(){
arbol *raiz=NULL;
char op;
do{
op=menu();
switch(op){
case '1':captura(raiz);break;
case '2':
printf("Inorden: ");
printf("%d",raiz->id);
//inOrder(raiz);
break;
case '3':break;
case '4':break;
}
}while(op!='5');
return 0;
}
char menu(){
char op;
system("cls");
printf("1.- Capturar arbol\n");
printf("2.- Imprimir arbol\n");
printf("3.- Actualizar existencias\n");
printf("4.- Status del producto\n");
printf("5.- Salir\n");
printf("Opcion: ");fflush(stdin);
op=getch();
printf("\n");
return op;
}
void captura(arbol *r){
arbol *raiz=NULL;
int i=1;
int idd;
char nombree[20];
char fechaa[10];
int existenciaa;
FILE *ptr;
ptr = fopen("150941_Aguilar_Av1-2.txt", "r");
do{
fscanf(ptr,"%d",&idd);
fscanf(ptr,"%s",nombree);
fscanf(ptr,"%s",fechaa);
fscanf(ptr,"%d",&existenciaa);
i++;
insercion(raiz,idd,nombree,fechaa,existenciaa);
}while(!feof(ptr));
fclose(ptr);
printf("Registros guardados %d\n",i);
getchar();
/*
while(!feof(fichero)) fputc(fgetc(fichero), stdout);
fclose(fichero);
getchar();*/
}
arbol* insercion(arbol *r,int id,char nombre[20],char fecha[10],int existencia){
if(r==NULL)
{
r=(arbol*)malloc(sizeof(arbol));
r->id=id;
strcpy(r->nombre,nombre);
strcpy(r->fecha,fecha);
r->existencia=existencia;
r->izquierda=NULL;
r->derecha=NULL;
return r;
}
else
{
if(r->id > id)
r->izquierda = insercion(r->izquierda,id,nombre,fecha,existencia);
else
r->derecha = insercion(r->derecha,id,nombre,fecha,existencia);
}
}
void inOrder(arbol *r){
if(r!=NULL){
inOrder(r->izquierda);
printf("%d -> ",r->id);
inOrder(r->derecha);
}
getch();
}
Trate de hacer distinto el codigo, se supone que ya esta dentro del arbol, pero a la hora de mostrar lo que hay en el no me corre, alguien puede detectar mi error?
O la manera en que estoy guardando los datos en el arbol es incorrecto y en lugar de hacerlo mediante fichero, hacerlo manualmente?