Last active
June 29, 2018 14:35
-
-
Save memochou1993/0d118008a36f9e051fd53679e5fb1dbb to your computer and use it in GitHub Desktop.
This file contains hidden or 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(object): | |
def __init__(self, data): | |
self.data = data | |
self.left = None | |
self.right = None | |
def insert(self, data): | |
if self.data == data: | |
return False | |
elif data < self.data: | |
if self.left: | |
return self.left.insert(data) | |
else: | |
self.left = Node(data) | |
return True | |
else: | |
if self.right: | |
return self.right.insert(data) | |
else: | |
self.right = Node(data) | |
return True | |
def find(self, data): | |
if data == self.data: | |
return True | |
elif data < self.data: | |
if self.left: | |
return self.left.find(data) | |
else: | |
return False | |
else: | |
if self.right: | |
return self.right.find(data) | |
else: | |
return False | |
def pre_order(self): | |
if self: | |
print(str(self.data), end = ' ') | |
if self.left: | |
self.left.pre_order() | |
if self.right: | |
self.right.pre_order() | |
def in_order(self): | |
if self: | |
if self.left: | |
self.left.in_order() | |
print(str(self.data), end = ' ') | |
if self.right: | |
self.right.in_order() | |
def post_order(self): | |
if self: | |
if self.left: | |
self.left.post_order() | |
if self.right: | |
self.right.post_order() | |
print(str(self.data), end = ' ') | |
class Tree(object): | |
def __init__(self): | |
self.root = None | |
def insert(self, data): | |
if self.root: | |
return self.root.insert(data) | |
else: | |
self.root = Node(data) | |
return True | |
def find(self, data): | |
if self.root: | |
return self.root.find(data) | |
else: | |
return False | |
def pre_order(self): | |
print() | |
if self.root is not None: | |
print('Pre-order: ') | |
self.root.pre_order() | |
def in_order(self): | |
print() | |
if self.root is not None: | |
print('In-order: ') | |
self.root.in_order() | |
def post_order(self): | |
print() | |
if self.root is not None: | |
print('Post-order: ') | |
self.root.post_order() |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment