二叉树先序遍历遵循:
访问根结点
遍历其左子树
遍历其右子树
简单来说就是根->左树->左树的左树->左树的左树的左树->(一直遍历到没有左树为止)右树->(如果没没有右树就往上)->一直遍历到右树的右树也没有了()就结束了
class TreeNode(object): #初始化树的 def __init__(self,data=0,left=0,right=0): self.data=data#数据域 self.left=left#左树 self.right=right#右树 class BTree(object): #初始化根 def __init__(self,root=0): self.root=root #先序遍历的方法 def preOrder(self,treenode): if treenode is 0: return print(treenode.data) self.preOrder(treenode.left) self.preOrder(treenode.right) if __name__=='__main__': n1=TreeNode(data='g') print(n1)#第0个节点 data =g 0 0 n2=TreeNode('e') print(n2)#第二个节点 data=e 0, 0 n3 = TreeNode('d',0,n2) print(n3)#第3个节点 data=d 0,n2 n4 = TreeNode('f',n1,0) print(n4)#第4个节点 data=d n1,0 n5 = TreeNode('b',n3,n4) print(n5)#第5个节点 data=d n3,n4 n6 = TreeNode('c') print(n6)#第6个节点 data=d 0,0 root=TreeNode('a',n5,n6) #第7个节点 data=a n5,n6 bt=BTree(root) print("先序遍历".center(50,'-')) bt.preOrder(bt.root)