2017-01-16 10 views
0

私は、ツリー内の状態から開始し、ツリー状の構造内のすべての可能な状態を通過するという、できるだけ早く解を得るアルゴリズムを得たいとします。ツリーを構築するのではなく、最初にツリーを構築し、ツリーを構築する必要があるのでしょうか?そして、構築中にソリューションノードが見つかった場合は、構築をやめ、すぐにルートに戻って、 ?検索ツリーとビルドツリーのアルゴリズム

基本的には、木を '生成'するBFアルゴリズムがあります。最初に木を作成し、それを幅優先方式で検索するのではなく、幅優先ですか?

アニメーション結果here:

の種類などは、ツリーを構築して、正確に起因するあなたが言及している理由のために、それを検索するための検索アルゴリズムには利点がありません

+1

ツリー検索の最も一般的なアプローチは、ツリー全体を構築してから検索するのではなく、暗黙のうちにツリーを構築するという印象を受けました。そうでないと言う情報源がありますか? – templatetypedef

+0

私の教授は、木を捜すためには、まず木を造る必要があると言いました。今、私は、木の探索が意味するところで矛盾しているのです。 – JuroNemo

+0

(1)問題の別の種類を指しているか、(2)それを構築するためのコードではなくツリーがあるという抽象的な考えを指していた、(3)彼らは間違っていた。このような検索の問題では、あなたが特定した理由のために事前に明示的にツリーを構築することは珍しいことです。 – templatetypedef

答えて

0

をお読みいただきありがとうございました。さらに、幅優先や深さ優先のツリーを構築することによって得られる検索関連の利点はありません。

通常、既に存在するツリーが存在し、幅優先アプローチまたは深さ優先アプローチを使用してツリーをトラバースします。これらのアプローチの1つを選択する理由は、検索要素またはツリーのプロパティによるものです。

ツリーを作成して検索する場合は、ツリーを構築してトラバースするスタンドアロンプ​​ログラムを作成する必要がある教育的な目的で使用します。これは、数値のリンクリストを作成し、線形検索を実行する、またはバイナリ検索ツリーを構築してから値を検索するのと同じです。典型的には、このアプローチは、1つのプログラムにパッケージ化されたデータ構造の作成および走査について教示する傾向がある。