//二叉树的遍历之递归实现(中序为例)
void InOrderTravelsal(BinTree BT)
{
if(BT)
{
InOrderTravelsal(BT->Left);
printf("%d", BT->Data);
InOrdweTravelsal(BT->Right);
}
}
//二叉树的遍历之堆栈实现(中序为例)
void InOrderTravelsal(BinTree BT)
{
BinTree T = BT;
Stack S = CreateStack(MaxSize);
while(T || !IsEmpty(S))
{
while(T)
{
Push(S, T);
T = T->Left;
}
while(!IsEmpty(S))
{
Pop(S, T);
printf("%d", T->Data);
T = T->Right;
}
}
}
//二叉树的层序遍历(队列)
void LevelOrderTravlesal(BinTree BT)
{
Queue Q; BinTree T;
if (!BT) return;
Q = CreateQueue(MaxSize);
AddQ(Q,BT);
while(!IsEmpty(Q))
{
T = DeleteQ(Q);
printf("%d", T->Data);
if(T->Left) AddQ(Q, T->Left);
if(T->Right) AddQ(Q, T->Right);
}
}