[白俊]1991号:巡樹解答


質問リンク
https://www.acmicpc.net/problem/1991
解き方
  • ノードを入力し、ツリーをグラフィカルに格納します.
  • 前列、中列、後列をそれぞれ関数として定義します.
  • 巡回方式によって、出力と再帰関数の順序が異なる.
  • 完全なコード
    from sys import stdin
    
    def pre_order(root):
        if root != '.':
            print(root, end='')
            pre_order(tree[root][0])
            pre_order(tree[root][1])
    
    def in_order(root):
        if root != '.':
            in_order(tree[root][0])
            print(root, end='')
            in_order(tree[root][1])
    
    def post_order(root):
        if root != '.':
            post_order(tree[root][0])
            post_order(tree[root][1])
            print(root, end='')
    
    N = int(input())
    tree = {}
    for i in range(N):
        node, left, right = stdin.readline().split()
        tree[node] = [left, right]
    
    pre_order('A')
    print()
    in_order('A')
    print()
    post_order('A')