1) 我们举例子的图片还是这张图片:
2)然后 我们讲解一下 普通的先序遍历
(1)首先有一个栈,来存节点信息
(2)然后我们是按照先序遍历的,首先存的是A,我们将A入栈时,同时给这个节点加一个标志 就是FALSE
(3)然后将A的左子树和右子树也入栈,因为先序是DLR,要是你想按照这个顺序输出,就得是按照RLD的顺序入栈,同时将A的标志由FALSE改为TRUE,现在栈的顺序就是
(4)然后就是将B出栈,同时改为TRUE,同时将B的左子树和右子树入栈,现在栈的顺序是:
5)然后就是C--->false出栈,同时将他改为TRUE,将C的左子树和右子树入栈
(6)后面的顺序和之前的思路一样,就是入栈和出栈
然后代码展示: