fork download
  1. # your code goes here
  2. class Node:
  3. def __init__(self, data):
  4. self.data = data
  5. self.left = None
  6. self.right = None
  7.  
  8.  
  9. def buildtree(inorder, preorder, instart, intend):
  10.  
  11. if instart>inend:
  12. return None
  13.  
  14. preorderval = preorder[buildtree.preindex]
  15. buildtree.preindex+=1
  16.  
  17. Nodet = Node(preorderval)
  18. if instart == intend:
  19. return Nodet
  20.  
  21. invalindex = search(inorder, instart, intend, preorderval)
  22.  
  23. Nodet.left = Buildtree(inorder, preorder, instart, invalindex-1)
  24. Nodet.right = Buildtree(inorder, preorder, invalindex+1, intend)
  25.  
  26. return Nodet
  27.  
  28. def search(inorder, instart, intend, preorderval):
  29. for i in range(intstart, intend):
  30. if inorder[i] == preorderval:
  31. return i
  32.  
  33.  
  34. inorder = ['D', 'B', 'E', 'A', 'F', 'C']
  35. preOrder = ['A', 'B', 'D', 'E', 'C', 'F']
  36.  
  37. #static variable for the function
  38. buildtree.preindex = 0
  39.  
  40. Nodett = Buildtree(inorder, preOrder, 0, len(inorder)-1)
  41. #print(Nodet.data)
  42.  
  43.  
  44.  
  45.  
Runtime error #stdin #stdout #stderr 0.12s 23560KB
stdin
Standard input is empty
stdout
Standard output is empty
stderr
Traceback (most recent call last):
  File "./prog.py", line 40, in <module>
NameError: name 'Buildtree' is not defined