• Miércoles 6 de Noviembre de 2024, 00:22

Autor Tema:  Re: Como declarar un arreglo de listas  (Leído 2540 veces)

ucablex

  • Nuevo Miembro
  • *
  • Mensajes: 5
    • Ver Perfil
Re: Como declarar un arreglo de listas
« en: Jueves 21 de Noviembre de 2002, 21:16 »
0
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.

adocrates

  • Miembro activo
  • **
  • Mensajes: 54
    • Ver Perfil
Re: Como declarar un arreglo de listas
« Respuesta #1 en: Viernes 22 de Noviembre de 2002, 02:18 »
0
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
Solo C que nada C.

ucablex

  • Nuevo Miembro
  • *
  • Mensajes: 5
    • Ver Perfil
Como declarar un arreglo de listas
« Respuesta #2 en: Viernes 22 de Noviembre de 2002, 21:55 »
0
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);
   }
  }
}