#include <stdio.h>
struct treenode{
int element;
struct treenode* left;
struct treenode* right;
};
void PreTraversal(struct treenode* BinTree)//前序遍历
{
if(BinTree!=NULL){
printf("%d ",BinTree->element);
PreTraversal(BinTree->left);
PreTraversal(BinTree->right);
}
}
void InTraversal(struct treenode* BinTree)//中序遍历
{
if(BinTree!=NULL){
InTraversal(BinTree->left);
printf("%d ",BinTree->element);
InTraversal(BinTree->right);
}
}
void PostTraversal(struct treenode* BinTree)//后序遍历
{
if(BinTree!=NULL){
PostTraversal(BinTree->left);
PostTraversal(BinTree->right);
printf("%d ",BinTree->element);
}
}
void LevelTrversal(struct treenode* BinTree)//层序,队列实现
{
struct treenode* queue[100];
int head=0;
int tail=0;
if(BinTree!=NULL){
queue[tail]=BinTree;
tail++;
while(head<tail){
if(queue[head]->left!=NULL){
queue[tail]=queue[head]->left;
tail++;
}
if(queue[head]->right!=NULL){
queue[tail]=queue[head]->right;
tail++;
}
head++;
}
}
//打印
for(int i=0;i<tail;i++)
printf("%d ",queue[i]->element);
return;
}
二叉树的前/中/后/层序遍历(前/中/后序递归实现,层序队列实现)
最新推荐文章于 2024-07-28 17:42:24 发布