void InorderTraversal( BinTree BT )//中序
{
if(BT)
{
InorderTraversal(BT->Left);
printf(" %c",BT->Data);
InorderTraversal(BT->Right);
}
}
void PreorderTraversal( BinTree BT )//先序
{
if(BT)
{
printf(" %c",BT->Data);
PreorderTraversal(BT->Left);
PreorderTraversal(BT->Right);
}
}
void PostorderTraversal( BinTree BT )//后序
{
if(BT)
{
PostorderTraversal(BT->Left);
PostorderTraversal(BT->Right);
printf(" %c",BT->Data);
}
}
void LevelorderTraversal( BinTree BT )//层序遍历
{
BinTree B[100];//结构体数组
BinTree T;
int i=0,j=0;
if(!BT)return;//树为空,返回
if(BT)//不为空
{
B[i++]=BT;//根节点入队
while (i!=j)//队列不空
{
T=B[j++];//出队
printf(" %c",T->Data);
if(T->Left) B[i++]=T->Left;
if(T->Right) B[i++]=T->Right;
}
}
}
6-10 二叉树的遍历 (25分)
最新推荐文章于 2024-10-07 10:25:43 发布