总结了用python实现二叉树的:
树的构造(添加节点)
前序遍历(递归与非递归)
中序遍历(递归与非递归)
后序遍历(递归与非递归)
层次遍历
其中前、中、后序遍历均为深度优先(DFS),层次遍历为广度优先(BFS)
'''节点类'''
class TreeNode:
def __init__(self, x):
self.val = x
self.left = None
self.right = None
'''树类'''
class Tree:
def __init__(self):
self.root = None
self.nodeQueue = []
'''添加节点(构造树)'''
def add(self, TreeNode):
if self.root==None:
self.root = TreeNode
self.nodeQueue.append(self.root)
else:
node = self.nodeQueue[0]
if node.left==None:
node.left