1. 基本思路
进行层次遍历时构建一个辅助队列,先将二叉树根节点入队,然后出队,访问出队结点,若它有左子树,将左子树根节点入队,然后出队,访问出队结点…,右子树也同样如此,循环往复直到队列为空。
2.代码
#include<stdio.h>
#include <malloc.h>
//二叉树的链式存储结构
typedef struct BiTNode {
char data;
struct BiTNode* lchild, * rchild;
}BiTNode, * BiTree;
//链式队列,存放二叉树结点
typedef struct QNode {
BiTNode* data;
struct QNode* next;
}QNode, * QueuePtr;
//队列头指针、尾指针
typedef struct {
QueuePtr front;
QueuePtr rear;
}LinkQueue;
//初始化队列
void InitQueue(LinkQueue& Q) {
Q.front = Q.rear = (QueuePtr)