elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Trabajando con las ramas de git (tercera parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Inserción de datos ABB con archivos
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Inserción de datos ABB con archivos  (Leído 1,970 veces)
eduardo1012

Desconectado Desconectado

Mensajes: 32


Ver Perfil
Inserción de datos ABB con archivos
« en: 26 Octubre 2016, 23:11 pm »

Tengo una duda al querer capturar los datos de un archivo y a la vez guardarlos en el árbol como podría hacerlo?
Código:
1
leche
20-12-2016
10
2
arroz
22/02/2017
8
3
Huevos
25/11/2016
8
4
frijoles
29/12/2017
12
5
maiz
31/03/2017
8
6
papas
20/03/2017
8
7
caramelos
08/09/2022
15
9
refresco
09/09/2019
18
10
harina
22/05/2018
11
Carne
10/04/2017
Esos son mis datos y mi código es:
Código
  1. typedef struct arbol{
  2.    int id;
  3.    char nombre;
  4.    char fecha;
  5.    int existencia;
  6.    struct arbol *izquierda,*derecha;
  7. }arbol;
  8.  
  9.  
  10. int menu();
  11. void captura();
  12. main(){
  13. arbol *raiz=NULL;
  14. char op;
  15. do{
  16. op=menu();
  17. switch(op){
  18. case 1:captura();break;
  19. case 2:printf("b");
  20. case 3:break;
  21. case 4:break;
  22. case 5:break;
  23. default:printf("Opcion invalida\n");system("pause");break;
  24.  
  25. }
  26.  
  27. }while(op!=5);
  28.  
  29.  
  30. getch();
  31. }
  32.  
  33. int menu(){
  34. char op[2];
  35. int opp;
  36. system("cls");
  37. printf("1.- Capturar arbol\n");
  38. printf("2.- Imprimir arbol\n");
  39. printf("3.- Actualizar existencias\n");
  40. printf("4.- Status del producto\n");
  41. printf("5.- Salir\n");
  42. printf("Opcion: ");
  43.  
  44.  
  45. validar_letras (op);
  46. opp=atoi(op);
  47. return opp;
  48.  
  49.  
  50. }
  51.  
  52. void captura(){
  53. FILE *fichero;
  54.   fichero = fopen("150941_Aguilar_Av1-2.txt", "r");
  55.   while(!feof(fichero)) fputc(fgetc(fichero), stdout);
  56.   rewind(fichero);
  57.   while(!feof(fichero)) fputc(fgetc(fichero), stdout);
  58.   fclose(fichero);
  59.   getchar();
  60.  
  61. }


En línea

eduardo1012

Desconectado Desconectado

Mensajes: 32


Ver Perfil
Re: Inserción de datos ABB con archivos
« Respuesta #1 en: 27 Octubre 2016, 21:52 pm »

Código
  1. using namespace std;
  2.  
  3. typedef struct arbol{
  4.    int id;
  5.    char nombre[20];
  6.    char fecha[10];
  7.    int existencia;
  8.    struct arbol *izquierda,*derecha;
  9. };
  10.  
  11.  
  12. arbol* insercion(arbol*,int,char[],char[],int);
  13. char menu();
  14. void captura(arbol*);
  15. void inOrder(arbol *);
  16. void mostrar(arbol*,int,char[],char[],int);
  17. void validar_letras (char *p);
  18. char getchass ();
  19. void insert(int key, struct node **leaf);
  20. main(){
  21. arbol *raiz=NULL;
  22. char op;
  23. do{
  24. op=menu();
  25. switch(op){
  26. case '1':captura(raiz);break;
  27. case '2':
  28.        printf("Inorden: ");
  29.                    printf("%d",raiz->id);
  30. //inOrder(raiz);
  31. break;
  32. case '3':break;
  33. case '4':break;
  34.  
  35. }
  36.  
  37. }while(op!='5');
  38. return 0;
  39. }
  40.  
  41. char menu(){
  42. char op;
  43. system("cls");
  44. printf("1.- Capturar arbol\n");
  45. printf("2.- Imprimir arbol\n");
  46. printf("3.- Actualizar existencias\n");
  47. printf("4.- Status del producto\n");
  48. printf("5.- Salir\n");
  49. printf("Opcion: ");fflush(stdin);
  50.  
  51.  
  52. op=getch();
  53. printf("\n");
  54. return op;
  55.  
  56.  
  57. }
  58.  
  59. void captura(arbol *r){
  60. arbol *raiz=NULL;
  61. int i=1;
  62.    int idd;
  63.    char nombree[20];
  64.    char fechaa[10];
  65.    int existenciaa;
  66.  
  67. FILE *ptr;
  68. ptr = fopen("150941_Aguilar_Av1-2.txt", "r");
  69.  
  70.  
  71.   do{
  72. fscanf(ptr,"%d",&idd);
  73.   fscanf(ptr,"%s",nombree);
  74.   fscanf(ptr,"%s",fechaa);
  75.   fscanf(ptr,"%d",&existenciaa);
  76.  
  77. i++;      
  78. insercion(raiz,idd,nombree,fechaa,existenciaa);
  79.   }while(!feof(ptr));
  80. fclose(ptr);  
  81. printf("Registros guardados %d\n",i);
  82.  
  83. getchar();
  84.  
  85.  
  86.  
  87.  
  88.   /*
  89.    while(!feof(fichero)) fputc(fgetc(fichero), stdout);
  90.  
  91.    fclose(fichero);
  92.    getchar();*/
  93.  
  94. }
  95. arbol* insercion(arbol *r,int id,char nombre[20],char fecha[10],int existencia){    
  96.  
  97.    if(r==NULL)
  98.    {
  99.        r=(arbol*)malloc(sizeof(arbol));
  100.        r->id=id;
  101.        strcpy(r->nombre,nombre);
  102.        strcpy(r->fecha,fecha);
  103.        r->existencia=existencia;
  104.        r->izquierda=NULL;
  105.        r->derecha=NULL;
  106.        return r;
  107.    }
  108.    else
  109.    {
  110.        if(r->id > id)
  111.            r->izquierda = insercion(r->izquierda,id,nombre,fecha,existencia);
  112.        else
  113.            r->derecha = insercion(r->derecha,id,nombre,fecha,existencia);
  114.  
  115.  
  116. }
  117. }
  118.  
  119. void inOrder(arbol *r){
  120.    if(r!=NULL){
  121.        inOrder(r->izquierda);
  122.        printf("%d -> ",r->id);
  123.        inOrder(r->derecha);
  124.    }
  125.    getch();
  126.  
  127. }

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?


En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[ADA] Error inexplicable en inserción de datos
Programación General
Shurhand 0 2,006 Último mensaje 18 Junio 2010, 10:33 am
por Shurhand
Problema a la hora de crear procedure de insercion de datos en oracle
Bases de Datos
guass19 2 3,761 Último mensaje 20 Junio 2012, 09:04 am
por guass19
evitar inserción de datos al recargar paginas
PHP
kakashi20 2 1,910 Último mensaje 17 Mayo 2013, 19:07 pm
por Brida
Inserción de datos en formulario
PHP
Arm144 2 2,268 Último mensaje 11 Noviembre 2016, 21:52 pm
por Arm144
Operaciones básica sobre archivos con acceso secuencial (búsqueda, inserción, el
Java
JackWithe 1 2,220 Último mensaje 2 Octubre 2020, 22:10 pm
por rub'n
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines