2017-02-19 31 views
-1

Мне нужно создать двоичное дерево поиска в c. Внутри дерева есть список слов, организованных первой буквой. Каждый узел содержит букву и список слов (строк), начинающихся с этой буквы, а также указатели на другие узлы. Я не уверен, как мне делать список слов внутри структуры. Должен ли я создать новую структуру для создания списка? Каков наилучший способ?Каков наилучший способ создания этой структуры в c?

До сих пор моя структура:

typedef struct Node { 
      char letter; 

      //where the list of words begginning with letter should be 

      struct Node *left; 
      struct Node *right; 
    } Node; 
+0

Список строк может быть реализован как «Связанный список», а Узел будет содержать указатель на список, связанный с буквой. – ultrajohn

ответ

0

Вы можете создать еще один-структуру для списка, который вы включаете в узел. Тогда вы можете создать отдельные функции для управления списком:

struct LIST { 
    char *word; 
    struct LIST *next; 
}; 

typedef struct Node { 
     char letter; 

     struct LIST *words; 

     struct Node *left; 
     struct Node *right; 
} Node; 
+0

Огромное спасибо большое – Sarah

0

Секрет заключается в том, чтобы сделать это

typedef struct node 
    { 
     char data; 
     struct node *next; 
     struct node *child; 
    } 

Теперь каждый маршрут от корня до листа составляет слово, но мы рассчитывать только " ребенок "перескакивает не" ближайшие "или" брачные "прыжки.