Advertisement
Guest User

Untitled

a guest
Dec 11th, 2017
155
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.27 KB | None | 0 0
  1. bool load(const char *dictionary)
  2. {
  3.     typedef struct node
  4.     {
  5.         char word[LENGTH + 1];
  6.         struct node *next;
  7.     }
  8.     node;
  9.  
  10.     node *hashtable[26];
  11.     node *last;
  12.     char word[LENGTH + 1];
  13.     bool letterused = false;
  14.     int charusednow = 0;
  15.     int charusedbefore = 0;
  16.   //  node *head = NULL;
  17.     FILE *dict = fopen(dictionary, "r");
  18.     if (dict == NULL)
  19.     {
  20.         fprintf(stderr, "The Dictionary does not Exist");
  21.         return false;
  22.     }
  23.  
  24.     while (fscanf(dict, "%s", word) != EOF)
  25.     {
  26.         charusednow = word[0];
  27.         if (charusednow != charusedbefore)
  28.         {
  29.             letterused = false;
  30.         }
  31.  
  32.         node *new_node = malloc(sizeof(node));
  33.         if (new_node == NULL)
  34.         {
  35.             unload();
  36.             return false;
  37.         }
  38.         strcpy(new_node->word, word);
  39.         int index = word[0] % 26;
  40.         if (letterused == false)
  41.         {
  42.             hashtable[index]->next = new_node;
  43.             letterused = true;
  44.         }
  45.         else
  46.         {
  47.             last->next = hashtable[index]->next;
  48.             while (last->next != NULL)
  49.                 last = last->next;
  50.             last->next = new_node;
  51.         }
  52.         charusedbefore = word[0];
  53.     }
  54.  
  55.     return true;
  56. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement