要求实现函数,输出二叉树的层次遍历序列,可借助STL(标准模板库)之queue(队列)。二叉树采用二叉链表存储,结点结构如下:
struct BiTNode { // 结点结构
char data; // 结点数据域
BiTNode *lchild, *rchild; // 左、右孩子指针
};
函数接口定义:
void LevelTraverse(BiTNode* T);
其中参数 T
是指向二叉树根结点的指针。
裁判测试程序样例:
#include<iostream>
#include<queue>
#include<string>
using namespace std;
struct BiTNode {
char data;
BiTNode *lchild, *rchild;
};
void LevelTraverse(BiTNode* T); // 层次遍历
BiTNode *createBT(string &s); // 创建二叉树,s存放带虚结点的先序遍历序列
// 根据带虚结点的先序序列创建二叉树并调用层次遍历函数LevelTraverse输出层次遍历结果
int main() {
string s;
while(cin>>s) {
BiTNode* root=createBT(s);
LevelTraverse(root);
}
return 0;
}