Created
May 18, 2020 06:54
-
-
Save Allwin12/24c74cfd48eb8e55c2e6baff2c71ccd8 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
class Node: | |
def __init__(self, name, value): | |
self.name = name | |
self.value = value | |
self.right = None | |
self.left = None | |
def add(self, value): | |
if not value == self.value: | |
if value > self.value: | |
if not self.right: | |
self.right = Node(None, value) | |
else: | |
self.right.add(value) | |
elif value < self.value: | |
if not self.left: | |
self.left = Node(None, value) | |
else: | |
self.left.add(value) | |
else: | |
raise ValueError('Value exists') | |
else: | |
raise ValueError('Value exists') | |
def find(self, value): | |
if value == self.value: | |
return True | |
elif value > self.value: | |
if not self.right: | |
raise Exception | |
self.right.find(value) | |
elif value < self.value: | |
if not self.left: | |
raise Exception | |
self.left.find(value) | |
class BinaryTree: | |
def __init__(self, root_value): | |
self.root = Node('root', root_value) | |
def add(self, value): | |
self.root.add(value) | |
def __repr__(self): | |
return str(self.root.name) | |
def find(self, value): | |
try: | |
self.root.find(value) | |
except Exception: | |
return False | |
else: | |
return True | |
""" Try the tree """ | |
bt = BinaryTree(root_value=10) | |
bt.add(15) | |
bt.add(5) | |
bt.add(2) | |
bt.add(23) | |
print(bt.find(5)) | |
print(bt.find(100)) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment