/* 你的代码将被嵌在这里 */
void InorderTraversal( BinTree BT )
{
Stack S = CreateStack();
BinTree T = BT;
while(T||!IsEmpty(S))
{
while(T){
Push(S,T);
T = T->Left;
}
T = Pop(S);
printf(" %c",T->Data);
T = T->Right;
}
}
void PreorderTraversal( BinTree BT )
{
Stack S = CreateStack();
BinTree T = BT;
while(T||!IsEmpty(S))
{
while(T){
printf(" %c",T->Data);
Push(S,T);
T = T->Left;
}
T = Pop(S);
T = T->Right;
}
}
void PostorderTraversal( BinTree BT )
{
BinTree T = BT;
Stack S = CreateStack();
while(T||!IsEmpty(S))
{
while(T){
Push(S,T);
T = T->Left;
}
T = Peek(S);
if(T->flag==0){
T->flag=1;
T = T->Right;
}
else{
Pop(S);
printf(" %c",T->Data);
T = NULL;
}
}
}
二叉树的非递归遍历
最新推荐文章于 2022-07-29 22:48:23 发布