Pre-order to post-order traversal

后端 未结 11 1513
挽巷
挽巷 2020-12-23 21:56

If the pre-order traversal of a binary search tree is 6, 2, 1, 4, 3, 7, 10, 9, 11, how to get the post-order traversal?

11条回答
  •  感动是毒
    2020-12-23 22:52

    This is the code of preorder to postorder traversal in python. I am constructing a tree so you can find any type of traversal

    def postorder(root):
        if root==None:
            return
        postorder(root.left)
        print(root.data,end=" ")
        postorder(root.right)
    
    def preordertoposorder(a,n):
        root=Node(a[0])
        top=Node(0)
        temp=Node(0)
        temp=None
        stack=[]
        stack.append(root)
        for i in range(1,len(a)):
            while len(stack)!=0 and a[i]>stack[-1].data:
                temp=stack.pop()
            if temp!=None:
                temp.right=Node(a[i])
                stack.append(temp.right)
            else:
                stack[-1].left=Node(a[i])
                stack.append(stack[-1].left)
        return root
    class Node:
        def __init__(self,data):
            self.data=data
            self.left=None
            self.right=None  
    a=[40,30,35,80,100]
    n=5
    root=preordertoposorder(a,n)
    postorder(root)
    # print(root.data)
    # print(root.left.data)
    # print(root.right.data)
    # print(root.left.right.data)
    # print(root.right.right.data)
    

提交回复
热议问题