白駿1991クリスマスツリー巡り
1536 ワード
白俊樹の問題です
このツリーに示すように、ノードの値は重複しません.左、右の値が同時に指定されている場合は、重複しません.
pythonでは辞書形式で開くのが便利です.
Aというキーワードの辞書を使って、値の0番を左に、1番を右に移動します.
n = int(input())
tree = dict()
for i in range(n):
root, left, right = input().split()
tree[root] = (left, right)
preOrderAnswer = []
inOrderAnswer = []
postOrderAnswer = []
def preOrder(root):
preOrderAnswer.append(root)
if ( tree[root][0] != "."):
preOrder(tree[root][0] )# left
if ( tree[root][1] != "."):
preOrder(tree[root][1])# right
return preOrderAnswer
def inOrder(root):
if ( tree[root][0] != "."):
inOrder(tree[root][0] )# left
inOrderAnswer.append(root)
if ( tree[root][1] != "."):
inOrder(tree[root][1])# right
def postOrder(root):
if ( tree[root][0] != "."):
postOrder(tree[root][0] )# left
if ( tree[root][1] != "."):
postOrder(tree[root][1])# right
postOrderAnswer.append(root)
preOrder("A")
inOrder("A")
postOrder("A")
for i in preOrderAnswer:
print(i , end ="")
print()
for i in inOrderAnswer:
print(i , end ="")
print()
for i in postOrderAnswer:
print(i , end ="")
Reference
この問題について(白駿1991クリスマスツリー巡り), 我々は、より多くの情報をここで見つけました https://velog.io/@tngus3722/백준-1991-트리-순회テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol