在这里插入代码片
// 谨记 每种遍历都不要忘记对树空的处理
//中序遍历
void InorderTraversal(BinTree BT){
if(BT==NULL)
//不要忘记return
return;
InorderTraversal(BT->Left);
printf(" %c",BT->Data);//输出是%c 不是%d 因为是char不是int
InorderTraversal(BT->Right);
}
//先序遍历
void PreorderTraversal(BinTree BT){
if(BT==NULL)
return;
printf(" %c",BT->Data);
PreorderTraversal(BT->Left);
PreorderTraversal(BT->Right);
}
//后序遍历
void PostorderTraversal(BinTree BT){
if(BT==NULL)
return;
PostorderTraversal(BT->Left);
PostorderTraversal(BT->Right);
printf(" %c",BT->Data);
}
//层次遍历
void LevelorderTraversal(BinTree BT){
if(BT==NULL)//BT=NULL不要忘记 千万不能忘记 否则会编译器报错this ‘if’ clause does not guard.
return;
BinTree Q[1000];
int front,rear;
front=rear=-1;
Q[++rear]=BT;
BinTree p;
while(front<rear){
p=Q[++front];
printf(" %c",p->Data);
if(p->Left){
Q[++rear]=p->Left;
}
if(p->Right){
Q[++rear]=p->Right;
}
}
}
6-9 二叉树的遍历 (25分)
最新推荐文章于 2023-04-20 22:15:57 发布