|
@@ -1,142 +1,9 @@
|
|
|
-
|
|
|
-def BinaryTree(r):
|
|
|
- return [r, [], []]
|
|
|
|
|
|
-
|
|
|
-def insertLeft(root, newBranch):
|
|
|
- t = root.pop(1)
|
|
|
- if len(t) > 1:
|
|
|
- root.insert(1, [newBranch, t, []])
|
|
|
- else:
|
|
|
- root.insert(1, [newBranch, [], []])
|
|
|
- return root
|
|
|
-
|
|
|
-
|
|
|
-def insertRight(root, newBranch):
|
|
|
- t = root.pop(2)
|
|
|
- if len(t) > 1:
|
|
|
- root.insert(2, [newBranch, [], t])
|
|
|
- else:
|
|
|
- root.insert(2, [newBranch, [], []])
|
|
|
- return root
|
|
|
-
|
|
|
-
|
|
|
-def getRootVal(root):
|
|
|
- return root[0]
|
|
|
-
|
|
|
-def setRootVal(root, newval):
|
|
|
- root[0] = newval
|
|
|
-
|
|
|
-def getLeftChild(root):
|
|
|
- return root[1]
|
|
|
-
|
|
|
-def getRightChild(root):
|
|
|
- return root[2]
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-def getLeftChild(self):
|
|
|
- return self.leftChild
|
|
|
-
|
|
|
-def getRightChild(self):
|
|
|
- return self.rightChild
|
|
|
-
|
|
|
-def setRootValue(self, obj):
|
|
|
- self.key = obj
|
|
|
-
|
|
|
-def getRootValue(self):
|
|
|
- return self.key
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-class BinaryTree:
|
|
|
- def __init__(self, rootObj):
|
|
|
- self.key = rootObj
|
|
|
- self.leftChild = None
|
|
|
- self.rightChild = None
|
|
|
-
|
|
|
-
|
|
|
-def insertLeft(self, newNode):
|
|
|
- if self.leftChild == None:
|
|
|
- self.leftChild = newNode
|
|
|
- else:
|
|
|
- t = BinaryTree(newNode)
|
|
|
- t.leftChild = self.leftChild
|
|
|
- self.leftChild = t
|
|
|
-
|
|
|
-
|
|
|
-def insertRight(self, newNode):
|
|
|
- if self.rightChild == None:
|
|
|
- self.rightChild = newNode
|
|
|
- else:
|
|
|
- t = BinaryTree(newNode)
|
|
|
- t.rightChild = self.rightChild
|
|
|
- self.rightChild = t
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-def preorder(tree):
|
|
|
- if tree:
|
|
|
- print(tree.getRootVal())
|
|
|
- preorder(tree.getLeftChild())
|
|
|
- preorder(tree.getRightChild())
|
|
|
-
|
|
|
-
|
|
|
-def inorder(tree):
|
|
|
- if tree:
|
|
|
- inorder(tree.getLeftChild())
|
|
|
- print(tree.getRootVal())
|
|
|
- inorder(tree.getRightChild())
|
|
|
-
|
|
|
-
|
|
|
-def postorder(tree):
|
|
|
- if tree:
|
|
|
- postorder(tree.getLeftChild())
|
|
|
- postorder(tree.getRightChild())
|
|
|
- print(tree.getRootVal())
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
+class TreeNode:
|
|
|
+ def __init__(self, val=0, left=None, right=None):
|
|
|
+ self.val = val
|
|
|
+ self.left = left
|
|
|
+ self.right = right
|
|
|
|
|
|
|
|
|
|