/
Inicio :: Foros

 F.A.Q.F.A.Q.                  Conéctese para revisar sus mensajesConéctese para revisar sus mensajes   

leer y mostrar fichero con ABB

 
      Índice del Foro elrincondelc.com -> Principiantes C/C++
Ver tema anterior :: Ver siguiente tema  
AutorMensaje
zero77



Registrado: 10 Oct 2006
Mensajes: 14

MensajePublicado: 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: 7520
Ubicación: Mexico

MensajePublicado: 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
      Índice del Foro elrincondelc.com -> Principiantes C/C++
Página 1 de 1Todas las horas están en GMT - 8 Horas

 
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas

(c) ElRincondelC.com

Un proyecto de UrlanHeat.com