再帰検索が機能しない

user3440629

私はC ++で二分木を構築しています。再帰的な方法で検索要素の機能を追加しようとしました。

正しく動作していません。

以下のコードとガイドをご覧ください。

bool Binarytree::SearchElement(node* SearchPtr,int key,bool found) {
    if(SearchPtr->data==key)
        found=true;

    if(SearchPtr==NULL  || found==true)
        return found;


    else
    {
        if(SearchPtr->data>key)
        { cout<<endl<<"Seaching in Left Sub tree"<<endl;
            SearchElement(SearchPtr->left,key,found);
        }
        else
        {   cout<<endl<<"Seaching in right Sub tree"<<endl;
            SearchElement(SearchPtr->right,key,found);
        }

    }

}

この関数SearchElementは次のように呼び出されます:(値1はツリーに存在しないことに注意してください)

if(SearchElement(root,1,false))
        cout<<endl<<"Element Found"<<endl;
    else
        cout<<endl<<"Element not Found"<<endl;
リカヤンバンディオパディヤイ

あなたは何も返していません。見つけNULLたら、戻る必要がありますfalseそして、あなたが要素を見つけたなら、あなたは返す必要がありますtrue要素が存在するかどうかがわかったら、すべての再帰呼び出しに戻る必要があります。以下のコードを確認してください。

注:あなたは二分木について言及し、二分探索木のように検索しました。二分探索木であることを考えると、次のようになります。

bool Binarytree::SearchElement(node* SearchPtr,int key) {
    if(SearchPtr->data==key)
        return true;

    if(SearchPtr==NULL)
        return false;


    if(SearchPtr->data < key) //not greater than, but less than
    { cout<<endl<<"Seaching in Left Sub tree"<<endl;
        return SearchElement(SearchPtr->left,key);
    }
    else
    {   cout<<endl<<"Seaching in right Sub tree"<<endl;
        return SearchElement(SearchPtr->right,key);
    }

}

二分木である場合は、要素が存在するかどうかを確認するためにツリー全体をトラバースする必要があります。このような:

bool Binarytree::SearchElement(node* SearchPtr,int key) {
    if (SearchPtr==NULL)
        return false;

    if(SearchPtr->data==key)
        return true;

    if (SearchElement(SearchPtr->left,key))
        return true;

    if (SearchElement(SearchPtr->right,key))
        return true;

    return false;

}

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

検索機能が機能しない

分類Dev

Beautifulsoup:findAll再帰が機能しない

分類Dev

再帰関数が機能しない

分類Dev

WebStorm:検索が機能しない

分類Dev

LaravelgetNameAttributeが検索で機能しない

分類Dev

Jquery検索が機能しない

分類Dev

検索バーが機能しない

分類Dev

htmljavascript検索が機能しない

分類Dev

Gridviewで検索が機能しない

分類Dev

mtimeで検索が機能しない

分類Dev

phpmysqli検索が機能しない

分類Dev

Codeigniter検索が機能しない

分類Dev

Jqueryの検索が機能しない

分類Dev

liferaylucene検索が機能しない

分類Dev

検索バーが機能しない

分類Dev

再帰的範囲機能が機能しない

分類Dev

リストの積の再帰機能が機能しない

分類Dev

Android Webviewコピー、検索、検索が機能しない

分類Dev

再帰的な関数従属性が機能しない

分類Dev

再帰が機能しないのはなぜですか?

分類Dev

再帰的な `setTimeout`が期待どおりに機能しない

分類Dev

再帰grepが機能しないのはなぜですか?

分類Dev

再帰が機能しないのはなぜですか?

分類Dev

Railsで再帰的な方法が機能しない

分類Dev

再帰的なOCaml関数が機能しない

分類Dev

Mysqlを使用したJSP検索機能が機能しない

分類Dev

Where句を使用した検索機能が機能しない

分類Dev

if句が再帰関数で機能していない

分類Dev

Python再帰リスト検索機能