二叉树的递归遍历

对于二叉树T,可以递归定义它的先序遍历、中序遍历和后序遍历,如下所示:

  • PreOrder(T)=T的根结点+PreOrder(T的左子树)+PreOrder(T的右子树)

  • InOrder(T)=InOrder(T的左子树)+T的根结点+InOrder(T的右子树)

  • PostOrder(T)=PostOrder(T的左子树)+PostOrder(T的右子树)+T的根结点

二叉树的递归遍历_第1张图片
另一棵二叉树

其中,加号表示字符串连接运算。例如,对于如图6-4所示的二叉树,先序遍历为DBACEGF,中序遍历为ABCDEFG。

这3种遍历都属于递归遍历,或者说深度优先遍历(Depth-First Search,DFS),因为它总是优先往深处访问。
提示6-18:二叉树有3种深度优先遍历:先序遍历、中序遍历和后序遍历。

三个例题:
UVa 548 (Tree)
UVA 839 (Not so Mobile)
UVA 699 (The Falling Leaves)

你可能感兴趣的:(二叉树的递归遍历)