Preorder Traversal and BST Python
PROGRAM TO CHECK IF A GIVEN ARRAY CAN REPRESENT PREORDER TRAVERSAL OF BST
OUTPUT:
true false
INT_MIN = -2**32 def canRepresentBST(pre): # Create an empty stack s = [] # Initialize current root as minimum possible value root = INT_MIN # Traverse given array for value in pre: #NOTE:value is equal to pre[i] according to the #given algo # If we find a node who is on the right side # and smaller than root, return False if value < root : return False # If value(pre[i]) is in right subtree of stack top, # Keep removing items smaller than value # and make the last removed items as new root while(len(s) > 0 and s[-1] < value) : root = s.pop() # At this point either stack is empty or value # is smaller than root, push value s.append(value) return True # Driver Programpre1 = [40 , 30 , 35 , 80 , 100]print "true" if canRepresentBST(pre1) == True else "false"pre2 = [40 , 30 , 35 , 20 , 80 , 100]print "true" if canRepresentBST(pre2) == True else "false"true false
Comments
Post a Comment