'''
1.广度优先遍历
分层把元素放到 队列中,进行遍历
2.深度优先遍历
前序,中序,后序遍历,使用堆栈和递归的方式
'''
def bfsTree(self):
if sele.root =None:
return None
queue =[]
queue.append(self.root)
while queue:
node=queue.pop(0)
print(node.element,end =',')
if node.lchild != None:
queue.append(node.lchild)
if node.rchild != None:
queue.append(node.rchild)
print()
def preorder(self,root):
if not root:
return
print(root.element,end =',')
self.preorder(root.lchild)
self.preorder(root.rchild
def inorder(self,root):
if not root:
return
self.inorder(root.lchild)
print(root.element,end=',')
self.inorder(root.rchild)
def postorder(self,root):
if not root:
return
self.postorder(root.lchild)
self.postorder(root.rchild)
print(root.element,end = ',')
if __name__ == '__main__':
binaryTree = Tree()
for i in range(7):
binaryTree.__add__(i+1)
print("广度优先:")
binaryTree.breadth_travel()
root = binaryTree.root
binaryTree.preorder(root)
print('深度优先--先序遍历')
binaryTree.inorder(root)
print('深度优先--中序遍历')
binaryTree.postorder(root)
print('深度优先--后序遍历')