2016-11-05 6 views
1

私のトライのデータ構造のすべての値を印刷したいだけでなく、このコードは辞書プログラムの部分です。データ構造を試してみる - すべての値を出力

void search(struct dictionary **current) { 
    if((*current)->is_end==1){ 
     printf("\n"); getchar(); 
    } 

    for(int i=0; i<26; i++){ 
     if((*current)->Children[i]!=NULL){ 
      printf("%c",i+(int)'a'); 
      search(&(*current)->Children[i]); 
     } 
    } 
} 

値をプッシュしたい。

を "不合格" が、私はそのコードを実行すると、プログラムがちょうど示し

  • "偽": は "偽" の

    LSEパーツ "FA" の失敗is_endがマークされていると、再帰が最初から開始しないため、表示されません。

  • +0

    "is_endがマークされていると、再帰的に最初から開始しないため、" false "の部分" fa "は表示されません。自分の。 – Dolda2000

    +0

    なぜダブルポインタを渡していますか? –

    答えて

    0

    端末ノードに到達するたびに、最初から再帰を再起動する必要はありません。 trieをトラバースし、is_endがtrueになるたびにその内容全体を表示するときには、現在のプレフィックスでバッファを保持することができます。

    関連する問題