宿題があり、大部分は完了しましたが、ある時点で立ち往生しています。二分木を検索してキーワードを見つけなければなりません。キーワードが表示されない場合は、検索したいキーワードを接頭辞として持っているツリーで、辞書的に次の文字列を見つけなければなりません。以前の基準。
次のコードは、正確な単語が見つからなかった後に検索するためのものです。
int successor(TreeNode *v,char* x){
int lenght = strlen(x);
printf("%d\n", lenght);
if (v != NULL) {
if (strncmp(x , v->key, lenght) == 0)
{
// found
printf("%s, %d\n", v->key, v->appears);
}
else if (strncmp(x , v->key, lenght) < 0)
return successor(v->left, x);
else if (strncmp( x , v->key, lenght) > 0)
return successor(v->right, x);
else
printf("Query string not found.\n");
}
}
else return 0; }
例
私が言葉を持っているなら:ツリートラバーサルツリー
tree <---(not root)
traversal trees
私が検索した場合:「tr」
私はトラバーサルだけを返します。
トラバーサルの原因が葉であるために左右に移動できず、木や木も表示する方法が見つかりません。
私はいくつかのことを試しましたが、うまくいかなかったので、今あなたに尋ねています。さらに、辞書編集上の次のキーワードの処理方法や、それをどうする必要があるのかもわかりません!
どんな助けでも大歓迎です!:D