Skip to content

Instantly share code, notes, and snippets.

@Xzenia
Last active July 27, 2019 16:32
Show Gist options
  • Save Xzenia/6a772361614b53287086266ae1eb5644 to your computer and use it in GitHub Desktop.
Save Xzenia/6a772361614b53287086266ae1eb5644 to your computer and use it in GitHub Desktop.
class Node:
key = None
leftNode = None
rightNode = None
def __init__(self, key):
self.key = key
def getLeftNode(self):
return self.leftNode
def setLeftNode(self, node):
self.leftNode = node
def getRightNode(self):
return self.rightNode
def setRightNode(self, node):
self.rightNode = node
def printAllNodes(rootNode):
node = rootNode
print(f"Current Node: {node.key} -> ", end='')
if (node.leftNode != None):
print(f"Left Node: {node.getLeftNode().key} -> ",end='')
printAllNodes(node.leftNode)
else:
print("Left Node: Empty -> ",end='')
if (node.rightNode != None):
print(f"Right Node: {node.getRightNode().key} -> ", end='')
printAllNodes(node.rightNode)
else:
print("Right Node: Empty")
if (node.leftNode == None and node.rightNode == None):
print(f"Current Node {node.key} is a leaf!")
def addNode(currentNode, newNode):
if (newNode.key < currentNode.key):
if (currentNode.leftNode != None):
addNode(currentNode.leftNode, newNode)
else:
currentNode.setLeftNode(newNode)
elif (newNode.key > currentNode.key):
if (currentNode.rightNode != None):
addNode(currentNode.rightNode, newNode)
else:
currentNode.setRightNode(newNode)
else:
return False
def searchNode(currentNode, node):
if (node.key == currentNode.key):
return True
elif (node.key < currentNode.key):
if (currentNode.leftNode != None):
if (searchNode(currentNode.leftNode, node)):
return (True)
else:
return False
elif (node.key > currentNode.key):
if (currentNode.rightNode != None):
if (searchNode(currentNode.rightNode, node)):
return (True)
else:
return False
def main():
rootNode = Node(7)
addNode(rootNode, Node(4))
addNode(rootNode, Node(8))
addNode(rootNode, Node(10))
addNode(rootNode, Node(3))
addNode(rootNode, Node(69))
printAllNodes(rootNode)
testNode = Node(10)
if (searchNode(rootNode, testNode)):
print(f"Node with key {testNode.key} was found!")
else:
print(f"Node with key {testNode.key} was not found in tree.")
main()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment