Skip to content

Instantly share code, notes, and snippets.

@zer0tonin
Last active April 16, 2018 19:51
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save zer0tonin/155fdb2286774e417fd031c4b7f51ee6 to your computer and use it in GitHub Desktop.
Save zer0tonin/155fdb2286774e417fd031c4b7f51ee6 to your computer and use it in GitHub Desktop.
class BinaryNode:
def __init__(self, value):
self.value = value
self.left = None
self.right = None
class CompleteBinaryTree:
def __init__(self, start: BinaryNode) -> None:
self.start = start
self.counter = 0
def insert(self, new: BinaryNode) -> None:
def recursion(new: BinaryNode, layer: [BinaryNode]):
nextLayer = []
for node in layer:
if node.left == None:
node.left = new
return
else:
nextLayer.append(node.left)
if node.right == None:
node.right = new
return
else:
nextLayer.append(node.right)
return recursion(new, nextLayer)
recursion(new, [self.start])
import unittest
from binary_tree import BinaryNode, CompleteBinaryTree
def init_complete_tree():
n1 = BinaryNode(1)
n2 = BinaryNode(2)
n3 = BinaryNode(3)
n1.left = n2
n1.right = n3
return CompleteBinaryTree(n1)
class BinaryTreeTest(unittest.TestCase):
def test_insert_complete(self):
tree = init_complete_tree()
n4 = BinaryNode(4)
n5 = BinaryNode(5)
n6 = BinaryNode(6)
tree.insert(n4)
tree.insert(n5)
tree.insert(n6)
n2 = tree.start.left
n3 = tree.start.right
self.assertEqual(n4, n2.left)
self.assertEqual(n5, n2.right)
self.assertEqual(n6, n3.left)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment