二叉树的先序、中序、后序遍历
二叉树的先序、中序、后序遍历
表达式树
表示一个表达式树(expression tree)的例子。表达式树的叶子节点是操作数(operand),如常数或者变量,而其他的节点为操作符(operator)。如图
中序遍历
通过递归打印产生的第一个表达式“(a + b * c ) + ( ( d * c + f ) * g )”,这种先遍历左子树,然后访问根节点,最后遍历右子树的方法称为中序遍历(inorder traversal)。由于其产生的表达式类型,这种遍历很容易记忆。
后序遍历
另一种方法,先遍历打印左子树,然后遍历打印右子树,最后打印根节点,得到的表达式为“abc * + de * f + g * +”,这种遍历方法称为后序遍历(postorder traversal)。
先序遍历
第三种方法,先遍历打印根节点的操作符,后遍历打印左子树和右子树的操作数。得到的表达式为“+ + a * bc * + * defg”,这种遍历方法称为先序遍历(preorder traversal)。