Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class BinaryTreeNode:
- def __init__(self, value, parentNode=None, leftChild=None, rightChild=None):
- self.Value = value
- self.leftChild = leftChild
- self.rightChild = rightChild
- if parentNode is None:
- self.parent = self
- else:
- self.parent = parentNode
- def addChild(self, child):
- #add a child node. working
- if child.Value < self.Value:
- if self.leftChild is None:
- self.leftChild = child
- child.parent = self
- else:
- self.leftChild.addChild(child)
- elif child.Value > self.Value:
- if self.rightChild is None:
- self.rightChild = child
- child.parent = self
- else:
- self.rightChild.addChild(child)
- def findValue(self, value):
- #Performs a binary search for a specified value
- if value == self.Value:
- print("found!")
- return self
- elif value < self.Value:
- if self.leftChild is None:
- print('value not found')
- else:
- self.leftChild.findValue(value)
- elif value > self.Value:
- if self.rightChild is None:
- print('value not found')
- else:
- self.rightChild.findValue(value)
- def genList(self, numList=None):
- #recursively generates a sorted list of child node values
- if numList is None:
- numList = []
- if self.leftChild is not None:
- self.leftChild.genList(numList)
- numList.append(self.Value)
- if self.rightChild is not None:
- self.rightChild.genList(numList)
- return numList
- def getAncestor(self):
- #find the top node of the tree. working
- if self.parent is self:
- return self
- else:
- return self.parent.getAncestor()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement