本文主要是介绍二叉树:利用两个队列层次遍历输出指定层数的叶子节点,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <iostream>
#define MAXSIZE 100
using namespace std;typedef struct bnode{ //树的定义char data;struct bnode *lchild,*rchild;
}BNode,*BiTree;typedef struct{ //循环队列的定义BiTree queue[MAXSIZE];int front,rear;
}Queue;void InitQ(Queue &Q) //初始化
{Q.front=Q.rear=0;
}void EnQueue(Queue &Q,BiTree e) //入队
{Q.rear=(Q.rear+1)%MAXSIZE;Q.queue[Q.rear]=e;
}void DeQueue(Queue &Q,BiTree &e) //出队
{Q.front=(Q.front+1)%MAXSIZE;e=Q.queue[Q.front];
}int QEmpty(Queue Q) //判队空
{return Q.front==Q.rear;
}int QFull(Queue Q) //判队满
{if((Q.rear+1)%MAXSIZE==Q.front)return 1;return 0;
}BiTree create() //以先序序列的方式构建一个二叉树,注意孩子为空的地方输入空格!
{BiTree bt;char ch;scanf("%c",&ch);if(ch==' ')
这篇关于二叉树:利用两个队列层次遍历输出指定层数的叶子节点的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!