次の問題をどのように細分化する必要がありますか?ツリーを構築してすべてのブランチを抽出する
私はレストランを所有し、今夜のメニューをデザインしたいとします。簡単な例として、私は食材の3種類持って
: 野菜(トマト、ジャガイモ、レタス) 炭水化物(ご飯、パスタ、パン) 肉(豚肉、鶏肉、牛肉)
編集:中実際には、未知の量の成分と成分の種類があります。 私は利用可能なすべての料理のリストを作りたいと思います。上記の例を使用して、各皿は、3つのタイプの成分全てを有するべきである。トマト - ライス - ポーク、トマト - パスタ - チキン、ジャガイモ - パン - ビーフ。
私のアプローチは、これをツリーとして扱い、DFSを行うことです。ツリーが横断されるときにブランチオブジェクトを作成し、各ノードをツリーの底に達するまで各ノードをブランチオブジェクトに追加し、すべてのノードが通過するまで新しいブランチを作成します。これは、組み合わせの一覧が表示されます
Meals
/ | \
Tomatoes Potatoes Lettuce
/ | \ / | \ / | \
Rice Pasta Bread Rice Pasta Bread Rice Pasta Bread
/ | \
Beef Pork Chicken
ジャガイモは炭水化物であり、野菜ではありません:)しかし、haあなたはこれを行うためにXMLを使用すると考えましたか? –
ハハ、私の生物学を刷新しなければならないDavid、訂正してくれてありがとう。 私はこれを行うには、既存のツール/ライブラリを使用する必要があります知っている。学習のために、私は自分自身でこれを実装する方法を勉強したいと思っています。 – learningnewthings
メニュー項目(veg、carb、meat)のそれぞれに対して、トリプルネストされた 'For'ループを使用するだけで、オプションをトラバースできます。結果は27通りあります。私は、Microsoft XML、v6.0ライブラリを使用してXML文書として構築します。 –