Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- int trie_load(trie *node, FILE *stream)
- {
- wchar_t *key = (wchar_t*)malloc((MAX_WORD_LENGTH + 1) * sizeof(wchar_t));
- wchar_t k = fgetwc(stream);;
- int i = 0;
- while (k != L'\\'){ /// Wczytujemy wszystkie dzieci.
- while (k != L'#' && k != L'|'){
- if (!iswalpha(k)){
- free(key);
- return -1;
- }
- if (i >= MAX_WORD_LENGTH){
- free(key);
- return -1;
- }
- key[i++] = k;
- k = fgetwc(stream);
- }
- if (i > 0){
- key[i] = L'\0';
- i = 0;
- if (k == L'#'){ /// Prawidłowe zakońćzenie słowa.
- trie_new_son_sorted_word(node, key);
- if (-1 == trie_load(node->sons[node->num_sons - 1], stream)){
- free(key);
- return -1;
- }
- } else if (k == L'|'){
- trie_new_son_sorted(node, key);
- if (-1 == trie_load(node->sons[node->num_sons - 1], stream)){
- free(key);
- return -1;
- }
- } else { /// Słowo się nie kończy gdy powinno..
- free(key);
- return -1;
- }
- }
- k = fgetwc(stream);
- }
- free(key);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement