二叉树的前序、中序、后序是相对于根结点来说的,前序是根左右、中序是左根右、后序是左右根,利用递归的思想实现二叉树的前序、中序、后序遍历。
算法思想:
前序(根左右):针对一个结点,首先进行遍历输出,然后判断是否有左子树,如果有左子树,对其左子树进行前序遍历,再判断是否有右子树,如果有右子树,对右子树进行遍历,如果既没有左子树,也没有右子树,则进行函数返回。
中序(左根右):针对一个结点,首先判断是否有左子树,如果有左子树,对其左子树进行中序遍历,没有左子树就进行遍历输出,然后再判断有无右子树,如果有右子树,则对右子树进行中序遍历,没有右子树,进行函数返回。
后序(左右根):针对一个结点,然后判断是否有左子树,如果有左子树,对其左子树进行后序遍历,再判断是否有右子树,如果有右子树,对右子树进行遍历,如果既没有左子树,也没有右子树,进行遍历输出,函数返回。
针对上树进行前、中、后序的遍历输出:
#include <iostream>
using namespace std;
//定义树的结点结构,有数据、左子