SoloCodigo

Programación General => C/C++ => Mensaje iniciado por: ucablex en Jueves 21 de Noviembre de 2002, 21:16

Título: Re: Como declarar un arreglo de listas
Publicado por: ucablex en Jueves 21 de Noviembre de 2002, 21:16
necesito crear un diccionario, con un arreglo de 26 casillas (numero de letras), que contenga listas enlazadas (palabras por letra), como declaro el arreglo de listas, y como hago la asignacion al arreglo.
Título: Re: Como declarar un arreglo de listas
Publicado por: adocrates en Viernes 22 de Noviembre de 2002, 02:18
Código: Text
  1. struct diccionario
  2. {
  3.     char *palabra;
  4.     struct diccionario next;
  5. };
  6.  
  7. struct diccionario *Diccionario[26];
  8. struct diccionario *pDic;
  9. ...
  10. //suponemos que la palabra ya esta parseada y en MAYUSCULAS
  11. letra=palabra_nueva[0];
  12. if(Diccionario[letra-'A']==NULL)
  13. {
  14.     Diccionario[letra-'A']=malloc(sizeof(struct diccionario));
  15.     Diccionario[letra-'A']->next=NULL;
  16.     Diccionario[letra-'A']->palabra=strdup(palabra_nueva);
  17. }
  18. else
  19. {
  20.     for(pDic=Diccionario[letra-'A'];pDic->next!=NULL;pDic=pDic->next); //llegamos al ultimo
  21.     pDic=malloc(sizeof(struct diccionario));
  22.     pDic->next=NULL;
  23.     pDic->palabra=strdup(palabra_nueva);
  24. }
  25.  
  26.  



Espero que te sirva...  OjO No olvides hacer un ciclo final liberando palabra y diccionario.:D
Título: Como declarar un arreglo de listas
Publicado por: ucablex en Viernes 22 de Noviembre de 2002, 21:55
typedef struct nodos
{
cadena elemento;
struct nodos *sig
} Nodo_Lista,*Lista;  
Nodo_Lista **LPtr[27];void Lee_Asigna_D(FILE *DIC)
{
   Lista D_nario = NULL;
   char *tokensPtr;
   {
   
   
    for (int i=1;!feof(DIC);i++)
    {    
        D_nario = NULL;
        fgets(Palabra,250,DIC);
          tokensPtr = strtok(Palabra," ");


        while ( tokensPtr != NULL)
         {
           strcpy(word,tokensPtr);
           printf("%sn",word);
           D_nario = Lista_Enlazada(D_nario,word);
           getch();
           tokensPtr = strtok (NULL," ");
         }
   
     LPtr = &D_nario;
     printf("%dn",i);
     ordenar(D_nario);
     imprimir(D_nario);
   }
  }
}