以下に示すようなデータ ツリーを構築しようとしていますが、次のことを実行できる効率的なマッチング アルゴリズムが必要です。
このツリーは、コースを受講するための前提条件のリストと考えることができます。たとえば、コース 1 には前提条件 3 と 4 があり、コース 3 には前提条件 7 と 8 があります。 7,8,4、それは 3 と 4 を取ったのと同じです)。
今、子供が来て、事前にコース 8、9、6 を受講していれば、コース 2 を受講したいと言っています。彼が適格かどうかをすばやく確認するにはどうすればよいですか?
今考えられる唯一の方法は、前提条件のすべての組み合わせを含むルックアップ テーブルを作成し、それをチェックして一致するものを見つけることです。ただし、ツリーが大きくなるにつれて (ノード数が 10,000 を超える可能性のあるツリーを構築しようとしています)、この方法ではコンピューターが壊れてしまいます。
これについて誰かアドバイスはありますか?それとも、この種のタスクを処理できる明確に定義された検索アルゴリズムが既に存在するのでしょうか? 前もって感謝します。ジム
図: 任意のデータ ツリー