これにアプローチする方法を理解するのに苦労しています...明確な答えを求めているのではなく、どのアプローチを取るべきかについて頭を上げているだけです。これまでに撮影したすべてのもので問題が発生したため.
ノードのセットがあります:
nodes = { ('A','B'),
('B','C'),
('C','D'),
('C','E'),
('B','E'),
('C','F')}
セットの辞書として:
nodedict = { 'A': {'B'},
'C': {'B', 'E', 'D', 'F'},
'B': {'A', 'C', 'E'},
'E': {'C', 'B'},
'D': {'C'},
'F': {'C'} }
私がやりたいのは、次のような構造を構築することです。
のために'
A
|
B
_________|_________
| |
C E
_____|_____ |
| | | C
D E F ____|____
| |
D F
したがって、A からのすべての可能なルートを見つけることができます。
私は枝を表すためにリストを使用しており、for ループを while ループでラップしようとしています...子がリストにない場合は、各リストにその子を追加します...しかし、スタックし続けます。私は時々近づくことがありますが、これは私が明示的な for ループを書いていて、探しているものを正確に知っているときです。
最初に 1 つのヒントにたどり着いてから、バックトラックしてから次のヒントに進むのが最善でしょうか ...
for x in xs:
...
for a in x:
...
for b in a
しかし明らかに、ノード 'n' がどのくらい深いのかわかりません... うーん... 役立つ提案は大歓迎です!