2017-02-19 8 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

文字列のリストは 'Linked List'として実装でき、Nodeには文字に関連付けられたリストへのポインタが入ります。 – 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; 
    } 

を行うことです」今ルートからリーフまでのすべての経路は、単語を構成するが、我々は唯一のカウント「子」は「次の」または「兄弟」のジャンプにジャンプしません。

関連する問題