显然,我们需要用一个stack来模拟递归时的函数调用。对于三种遍历,我们都使用push当前节点->push左子树->pop左子树->push右子树->pop右子树的方式。但是cout时机会有所不同。
对于前序遍历来说,每次访问到一个节点就cout;
对于中序遍历来说,每次将右子节点进栈时,把当前节点cout;
对于后序遍历来说,每次pop的时候cout。
显然,我们需要用一个stack来模拟递归时的函数调用。对于三种遍历,我们都使用push当前节点->push左子树->pop左子树->push右子树->pop右子树的方式。但是cout时机会有所不同。
对于前序遍历来说,每次访问到一个节点就cout;
对于中序遍历来说,每次将右子节点进栈时,把当前节点cout;
对于后序遍历来说,每次pop的时候cout。