主题:[原创]后序非递归?加分!
helun
[专家分:40] 发布于 2006-06-24 12:27:00
各位好,请问一下,后序非递归的算法如何写呢?树的中序用栈遍历很简单,可是如何用栈实现后序呢?请教
回复列表 (共1个回复)
沙发
中国台湾 [专家分:2140] 发布于 2006-06-25 00:45:00
void BerforOrderTraverse2(bitree t) //后序非递归形式
{
typedef struct node
{
bitree t;
int tag;
} stack;
stack s[100] ;
int top=0;
while (t!=NULL|| top!=0)
{
while (t!=NULL)
{
s[++top].t=t;
s[top].tag=0;
t=t->lchild;
}
while (top!=0 && s[top].tag==1)
{
printf("%c" ,s[top--].t->data);
}
if (top)
{
s[top].tag=1;
t = s[top].t->rchild ;
}
}
}
我来回复