利用循环队列层次遍历一棵二叉树 递归实现
代码实现:
#include <iostream> ///循环队列实现层次遍历二叉树
#include <stdio.h>
#include <stdlib.h>
#define Maxsize 100
#define OK 1
#define OVERFLOW -2
using namespace std;
typedef char CElemType;
typedef struct BiNode
{
CElemType data;
struct BiNode*lchild,*rchild;
} BiNode,*BiTree;
typedef BiTree ElemType; ///存放二叉树地址的循环队列 吧
typedef struct
{
ElemType *base;
int front;
int rear;
} SeqQueue;
int InitQueue(SeqQueue &Q)
{
Q.base=(ElemType *)malloc(Maxsize*sizeof(ElemType));
if(!Q.base)
exit(OVERFLOW);
Q.front = Q.rear =0;
return OK;
}
int EnQueue(SeqQueue &Q,ElemType e)
{
if((Q.rear+1)%Maxsize==Q.front)
{
cout<<"Queue Full"<<endl;
return 0;
}
Q.rear = (Q.rear+1)%Maxsize;
Q.base[Q.rear]=e;
return 1;
}
int DeleQueue(SeqQueue &Q,ElemType &e)
{