Guest User

Untitled

a guest
May 23rd, 2018
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.29 KB | None | 0 0
  1. # A simple complete binary tree implementation with DFS methods
  2.  
  3.  
  4. class Node:
  5. def __init__(self, newData):
  6. self.data = newData
  7. self.left = None
  8. self.right = None
  9.  
  10. def getData(self):
  11. return self.data
  12.  
  13. def setData(self, newData):
  14. return self.data
  15.  
  16. def getLeftChild(self):
  17. return self.left
  18.  
  19. def setLeftChild(self, newData):
  20. self.left = newData
  21.  
  22. def getRightChild(self):
  23. return self.right
  24.  
  25. def setRightChild(self, newData):
  26. self.right = newData
  27.  
  28.  
  29. class BTree:
  30. def __init__(self, newData):
  31. self.root = Node(newData)
  32.  
  33. def isEmpty(self):
  34. return self.root is None
  35.  
  36. def empty(self):
  37. self.root = None
  38.  
  39. def insert(self, newData):
  40. if self.root is None:
  41. self.root = Node(newData)
  42. else:
  43. self._insert(newData, self.root)
  44.  
  45. def _insert(self, newData, node):
  46. if newData < node.getData():
  47. if node.getLeftChild() is not None:
  48. self._insert(newData, node.getLeftChild())
  49. else:
  50. node.setLeftChild(Node(newData))
  51. else:
  52. if node.getRightChild() is not None:
  53. self._insert(newData, node.getRightChild())
  54. else:
  55. node.setLeftChild(Node(newData))
  56.  
  57. def find(self, data):
  58. if self.root is not None:
  59. return self._find(data, self.root)
  60. else:
  61. return False
  62.  
  63. def _find(self, data, node):
  64. if data == node.getData():
  65. return node.getData()
  66. elif data < node.getData() and node.getLeftChild() is not None:
  67. self._find(data, node.getLeftChild())
  68. elif data > node.getData() and node.getRightChild() is not None:
  69. self._find(data, node.getRightChild())
  70.  
  71. def inOrder(self, root):
  72. if root:
  73. self.inOrder(root.getLeftChild())
  74. print(root.getData)
  75. self.inOrder(root.getRightChild())
  76.  
  77. def postOrder(self, root):
  78. if root:
  79. self.postOrder(root.getLeftChild())
  80. self.postOrder(root.getRightChild())
  81. print(root.getData)
  82.  
  83. def preOrder(self, root):
  84. if root:
  85. print(root.getData)
  86. self.preOrder(root.getLeftChild())
  87. self.preOrder(root.getRightChild())
Add Comment
Please, Sign In to add comment