数据结构3.3-Tree Traversals Again

问题

数据结构3.3-Tree Traversals Again_第1张图片
数据结构3.3-Tree Traversals Again_第2张图片
Tree Traversals Again

代码

postorder = []

n = int(input())

preorder = []

stack = []
inorder = []
for i in range(2*n):
    s = input()
    
    if len(s) > 3:
        num = s[s.index(' ') + 1 : ]
        preorder.append(num)
        stack.append(num)
    else:
        inorder.append(stack.pop())
        
def to_postorder(preorder, inorder):
    if len(preorder) == 0:
        return
        
    root = preorder.pop(0)
    postorder.append(root)
    
    index = inorder.index(root)
    to_postorder(preorder[index : ], inorder[index+1 : ])
    to_postorder(preorder[ : index], inorder[ : index])
    
to_postorder(preorder, inorder)
postorder.reverse()
for i in postorder:
    e = ' '
    if i == postorder[-1]:
        e = ''
    print(i, end = e)

有任何问题请回复提出。然后欢迎关注微信公众号格物致愚

数据结构3.3-Tree Traversals Again_第3张图片
格物致愚

你可能感兴趣的:(数据结构3.3-Tree Traversals Again)