题目描述
大意是给出一个二叉树,要求按照层序遍历的顺序输出其所有叶子节点
第一个数字代表节点数,其后的第i行输入用例代表第i个节点(0 <= i < n-1),每行的数字代表该行对应节点的子树的根节点
此题整体上比较简单,主要是练习这种输入格式对应的静态链表栽树和层序遍历操作
#include <stdio.h>
#include <stdlib.h>
#define N 15
#define null -1
typedef struct BITREE
{
int num;//节点编号
int lchild;
int rchild;
}BITREE;
typedef struct QUEUE
{
BITREE TREE[N];
int front;//指向第一个元素
int rear;//rear指向最后元素后一个位置
}QUEUE;
BITREE tree[N];
void InitQueue(QUEUE *q)
{
q->front=q->rear=0;
}
void EnterQueue(QUEUE *q,BITREE TNODE)//入队
{
if((q->rear+1)%N == q->front)
printf("队满\n");
else
{
q->TREE[q->rear].lchild=TNODE.lchild;