#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#define maxsize 10
using namespace std;
typedef struct BTNode{
char data;
struct BTNode *lchild;
struct BTNode *rchild;
}BTNode;
void create(BTNode *&p) //先序遍历创建二叉树
{
char k;
scanf("%c",&k);
if(k=='#') p=NULL;
else
{
p=(BTNode *)malloc(sizeof(BTNode));
p->data=k;
create(p->lchild);
create(p->rchild);
}
}
void level(BTNode *p)
{
BTNode *q;
BTNode *queue[maxsize];
int front=0,rear=0;
if(p==NULL) return;
else
{
rear=(rear+1)%maxsize;
queue[rear]=p;
while(front!=rear)
{
front=(front+1)%maxsize;
q=queue[front];
printf("%c ",q->data);
if(q->lchild!=NULL) {rear=(rear+1)%maxsize;queue[rear]=q->lchild;}
if(q->rchild!=NULL) {rear=(rear+1)%maxsize;queue[rear]=q->rchild;}
}
}
}
int main()
{
BTNode *T;
create(T);
level(T);
return 0;
}
二叉树层次遍历
猜你喜欢
转载自blog.csdn.net/qq_39350434/article/details/81488931
今日推荐
周排行