class SelfNode(object):
element=0
lchild = None
rchild = None
def __init__(self,element:int,lchild=None,rchild=None):
self.element = element
self.lchild = lchild
self.rchild = rchild
class SelfTree(object):
nodeNum = 0
nodeArr = []
rootNode = {}
def __init__(self,rootNode:SelfNode):
self.nodeArr.append(rootNode)
self.rootNode = rootNode
nodeNum = len(self.nodeArr)
def addNode(self,node:SelfNode):
tagetNode = self.rootNode
while tagetNode!=None:
if node.element>=tagetNode.element:
if tagetNode.rchild == None:
tagetNode.rchild = node
break
else:
tagetNode = tagetNode.rchild
else:
if tagetNode.lchild ==None:
tagetNode.lchild = node
break
else:
tagetNode = tagetNode.lchild
def preorder(self,node:SelfNode):
if node ==None:
return
print(node.element)
self.preorder(node.lchild)
self.preorder(node.rchild)
def innerOrder(self,node:SelfNode):
if node ==None:
return
self.innerOrder(node.lchild)
print(node.element)
self.innerOrder(node.rchild)
def endOrder(self,node : SelfNode):
if node == None:
return
self.endOrder(node.lchild)
self.endOrder(node.rchild)
print(node.element)
treeRoot = SelfNode(100)
tree = SelfTree(treeRoot)
tree.addNode(SelfNode(101))
tree.addNode(SelfNode(110))
tree.addNode(SelfNode(120))
tree.addNode(SelfNode(9))
tree.addNode(SelfNode(10))
tree.addNode(SelfNode(75))
tree.preorder(treeRoot)
print("------------------")
tree.innerOrder(treeRoot)
print("------------------")
tree.endOrder(treeRoot)