私はプログラマーではないが、私の個人的なプロジェクトの一環として、バイナリツリーを印刷することができる再帰的な解決策があるかどうかを知りたい幅の広い順番、レベル順?私は反復深さの最初のアルゴリズムを使用できることを理解していますか?以下のバイナリツリーのバイナリツリーの幅を最初に印刷する深さの最初の反復深化アルゴリズム
#Helper method
def getChildren(node):
children=[]
hasLeft = node.left is not None
hasRight = node.right is not None
if not hasLeft and not hasRight:
return []
if hasLeft:
children.append(node.left)
if hasRight:
children.append(node.right)
return children
def DLS(node, depth):
"""Depth Limited Search"""
if (depth == 0):
return node
elif (depth > 0):
print node.value,
children = getChildren(node)
for child in children:
DLS(child, depth-1)
else:
return False
: (1)3 (2)2 (4)1 (8)1 (9)0 (5)1 (3)1 (6)1 (7)0 None
最初のレベルの順序が、プリオーダーの深さではありません。私は、このトラバーサル出力を取得しています
(1)3
(2)2 (3)1
(4)1 (5)1 (6)1 (7)0
(8)1 (9)0
。
DLS
関数の深さを反復する必要がありますか?バイナリツリーのレベルオーダープリントアウトを実装するにはどうすればよいですか?データ構造の観点から
感謝 アレックス
こんにちは@andrewcooke私は私の質問の3つ以上、同じ質問について質問していると思いました。私はいくつかのアイデアやフィードバックを通して考えてきたので、この件について質問し続けることに熱心でした。私は実際に私の質問を削除したくなかったので、私が学んでいるように回答を返すようにしたい。古い質問をアーカイブする方法はありますか?ありがとう – Alex2134