#include<iostream>
using namespace std;
#define MAXSIZE 5
typedef struct tree{
char data;
struct tree *lchild;
struct tree *rchild;
}tree,*Tree;
//层次遍历
//思路:首先需要一个循环队列,将头结点先放入队列中,然后出队,如果有左右孩子,则依次放入队列中,并循环该队列,直到所以元素取出
void level(Tree e){
//初始化话队列
Tree tQueue[MAXSIZE];
int front,rear=0;
Tree p;
//将头结点先放入队列中
front = (front+1)%MAXSIZE;
tQueue[front] = e;
//循环队列
while(front != rear){
//取出头结点
rear = (rear+1)%MAXSIZE;
p = tQueue[rear];
cout<<p->data<<endl;
//判断左孩子是否存在
if(p->lchild != NULL){
front = (front+1)%MAXSIZE;
tQueue[front] = p->lchild;
}
//判断右孩子是否存在
if(p->rchild != NULL){
front = (front+1)%MAXSIZE;
tQueue[front] = p->rchild;
}
}
}
二叉树层次遍历
最新推荐文章于 2024-10-04 23:00:36 发布