| Ver tema anterior :: Ver siguiente tema | | Autor | Mensaje |
|---|
zero77
Registrado: 10 Oct 2006 Mensajes: 14
| Publicado: 01/05/2014 5:21 pm | | | Título: leer y mostrar fichero con ABB |
| Hola tengo que hacer un programa que lea un archivo txt, lo guarde palabra a palabra en un arbol binario y luego lo muestre, el problema es que hice un codigo y complila, pero no muestra el arbol binario y no estoy seguro de si esta leyendo el txt.
adjunto codigo
| Código: |
#include <stdio.h> #include <stdlib.h>
// Estructura arbol
typedef struct _ABB { int dato ; struct _ABB *der,*izq ; } ABB ;
// Metodos declaracion ABB *insertar(ABB *, char ); void dibujame(ABB *, int );
// Principal
int main(){ ABB *arbol = NULL ; FILE *archivo; char palabra;
archivo = fopen("datos.txt","r");
if (archivo == NULL) exit(1); while (feof(archivo) == 0){ palabra = fgetc(archivo); insertar(arbol,palabra); } dibujame(arbol,1);
return 0; } ABB *insertar(ABB *t, char d ) { if ( t==NULL) { t = (ABB *)malloc(sizeof(ABB)); if ( t==NULL) exit(1); t->dato = d ; t->izq = t->der = NULL ; return t ; } if ( d == t->dato ) return t ; if ( d < t->dato) t->izq = insertar(t->izq,d); else t->der = insertar(t->der,d); return t ; }
void dibujame(ABB *t, int nivel ) { int i ; if ( t != NULL ) { dibujame(t->izq, nivel + 1); for ( i=0 ; i < nivel ; i++ ) printf(" "); printf("%d\n",t->dato); dibujame(t->der, nivel + 1); } }
|
cualquier ayuda sera agradecida |
| | Volver arriba | |  | rir3760

Registrado: 01 Oct 2004 Mensajes: 7517 Ubicación: Mexico
| Publicado: 06/05/2014 6:57 am | | | Título: Re: leer y mostrar fichero con ABB |
| | zero77 escribió: | | tengo que hacer un programa que lea un archivo txt, lo guarde palabra a palabra en un arbol binario y luego lo muestre, el problema es que hice un codigo y complila, pero no muestra el arbol binario |
El problema principal se da al indicar que debes leer el archivo palabra por palabra pero en la declaración de la estructura:
| Código: | // Estructura arbol
typedef struct _ABB { int dato ; struct _ABB *der,*izq ; } ABB; |
El tipo de dato es int.
Mientras que en la declaración de las funciones:
| Código: | // Metodos declaracion ABB *insertar(ABB *, char ); void dibujame(ABB *, int ); |
Indicas en una que el tipo es int y la otra indica que es char pero para leer el archivo palabra por palabra se necesita que el argumento de las funciones sea de tipo "char *".
Primero acláranos ese punto.
Y disculpa la tardanza en contestar.
Un saludo _________________ C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly. -- Kernighan & Ritchie, The C programming language |
| | Volver arriba | |  | | |
| No puede crear mensajes No puede responder temas No puede editar sus mensajes No puede borrar sus mensajes No puede votar en encuestas
|
|
| |