其余实现代码见《二叉树的非递归中序遍历以及层序遍历实现》
代码一:
void InOrder2(BTree T)
{
LinkStack s;
InitStack(&s);
for(;;)
{
for(;T;T=T->lChild)
Push(&s,T);
Pop(&s,&T);
if(!T)
break;
cout<<"Node : "<<T->data<<endl;
T = T->rChild;
}
Destroy(&s);
}
代码二:
void InOrder3(BTree T)
{
LinkStack s;
InitStack(&s);
while(T || !Isempty(s))
{
if(T)
{
Push(&s,T);
T = T->lChild;
}
else
{
Pop(&s,&T);
cout<<"Node : "<<T->data<<endl;
T = T->rChild;
}
}
Destroy(&s);
}

本文详细介绍了如何使用非递归方式实现二叉树的中序遍历和层序遍历,并提供了相应的代码实现。重点在于通过链接栈等数据结构来优化遍历过程。

1219

被折叠的 条评论
为什么被折叠?



