//非递归前序遍历
//设置一个函数,该函数的作用是深入左子树同时遍历,用栈保存右子树
void preOreder_Ii(TreeNode *bt, stack S) {
while (bt)
{
Visit(bt);
if(bt->rc)
S.push(bt->rc);
bt = bt->lc;
}
}
void preOreder_I(TreeNode *bt) {
stack S;
while (true) {
preOreder_Ii(bt, S);
if (S.isEmpty())
break;
bt = S.pop();
}
}
原文:https://www.cnblogs.com/Royzzzzz/p/12968739.html