1.建立一个节点
class treenode:
def __init__(self,value=None):
self.value=value#节点值
self.left=None#左孩子
self.right=None#右孩子
2.建立一棵树
class Tree:
def __init__(self):
print("树")
def createtree(self,root,num,i):
if i<len(num):
if num[i]=="*":#
return
else:
root=Node(num[i])#新建立节点
root.left= self.createtree(root.left,num,2*i+1)#递归建立一个节点并将返回值赋值给当前节点的左孩子,其中节点值是
root.right=self.createtree(root.right,num,2*i+2)
return root
return root
3.先序遍历
def pretree(self,Node):
if Node==None:
return
print(Node.value,end=" ")
self.pretree(Node.left)
self.pretree(Node.right)
4.中序遍历
def midtree(self,Node):
if Node ==None:
return
self.midtree(Node.left)
#print("\n")
print(Node.value,end=" ")
self.midtree(Node.right)
5.层次遍历
def mypretree(self,Node):
queue=list()
queue.append(Node)
while queue!=None:
#node=queue.pop()
# for i in queue:
#print(i.value,end=" ")
node=queue.pop()
print(node.value,end=" ")
print("\n")
if node.right!=None:
queue.append(node.right)
#queue.append(node.left)
if node.left!=None:
#queue.append(node.right)
queue.append(node.left)