二叉树:先序遍历
Posted smallredness
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了二叉树:先序遍历相关的知识,希望对你有一定的参考价值。
void PreOrderWithoutRecursion1(BTNode* root)
{
if (root == NULL)
return;
BTNode* p = root;
stack<BTNode*> s;
while(p||!s.empty())
{
//边遍历边打印,并存入栈中,以后需要借助这些根节点(不要怀疑这种说法哦)进入右子树
while (p)
{
cout << setw(4) << p->data;
s.push(p);
p = p->lchild;
}
//当p为空时,说明根和左子树都遍历完了,该进入右子树了
if (!s.empty())
{
p = s.top();
s.pop();
p = p->rchild;
}
}
cout << endl;
}
以上是关于二叉树:先序遍历的主要内容,如果未能解决你的问题,请参考以下文章
建立一棵二叉树,并对其进行遍历(先序、中序、后序),打印输出遍历结果