函数题:层次遍历
要求实现函数,输出二叉树的层次遍历序列,可借助STL(标准模板库)之queue(队列)。二叉树采用二叉链表存储,结点结构如下:
struct BiTNode { // 结点结构
char data; // 结点数据域
BiTNode *lchild, *rchild; // 左、右孩子指针
};
### 函数接口定义:
c++
void LevelTraverse(BiTNode* T);
其中参数 T是指向二叉树根结点的指针。
### 裁判测试程序样例:
c++
#include<iostream>
#include<queue>
#include<string>
using namespace std;
struct BiTNode {
char data;
BiTNode *lchild, *rchild;
};
void LevelTraverse(BiTNode* T); // 层次遍历
BiTNode *CreateBiTree(string &s); // 创建二叉树,s存放带虚结点的先序遍历序列
// 根据带虚结点的先序序列创建二叉树并调用层次遍历函数LevelTraverse输出层次遍历结果
int main() {
string s;
while(cin>>s) {
BiTNode* root=CreateBiTree(s);
LevelTraverse(root);
}
return 0;
}
### 输入样例:
in
HDA**C*B**GF*E***
-+a**xb**-c**d**/e**f**
### 输出样例:
out
HDGACFBE
-+/axefb-cd
答案:若无答案欢迎评论
struct BiTNode { // 结点结构
char data; // 结点数据域
BiTNode *lchild, *rchild; // 左、右孩子指针
};
### 函数接口定义:
c++
void LevelTraverse(BiTNode* T);
其中参数 T是指向二叉树根结点的指针。
### 裁判测试程序样例:
c++
#include<iostream>
#include<queue>
#include<string>
using namespace std;
struct BiTNode {
char data;
BiTNode *lchild, *rchild;
};
void LevelTraverse(BiTNode* T); // 层次遍历
BiTNode *CreateBiTree(string &s); // 创建二叉树,s存放带虚结点的先序遍历序列
// 根据带虚结点的先序序列创建二叉树并调用层次遍历函数LevelTraverse输出层次遍历结果
int main() {
string s;
while(cin>>s) {
BiTNode* root=CreateBiTree(s);
LevelTraverse(root);
}
return 0;
}
### 输入样例:
in
HDA**C*B**GF*E***
-+a**xb**-c**d**/e**f**
### 输出样例:
out
HDGACFBE
-+/axefb-cd
答案:若无答案欢迎评论