输入
输入为接受键盘输入的由大写英文字符和"#"字符构成的一个字符串(用于创建对应的二叉树)。
输出
每个用例用一行出该用例对应的二叉树的层次遍历序列。
样例输入
A## ABC#### AB##C## ABCD###EF##G##H## A##B##
样例输出
A ABC ABC ABHCEDFG A
#include <iostream>
#include<algorithm>
#include <queue>
using namespace std;
typedef struct node
{
char date;
node *left,*right;
}Node;
void add(node *&p)//先序创建二叉树
{
char str;
cin>>str;
if(str!='#')
{
p = (node*)malloc(sizeof(node));
p->date = str;
add(p->left);
add(p->right);
}
else
{
p = NULL;
}
}
int main(int argc, const char * argv[]) {
queue<node*>p;
Node *q;
add(q);
p.push(q);//将根结点进对列
while(!p.empty())
{
Node *t = p.front();//读取对头元素
p.pop();//出对列
cout<<t->date;//输出对头元素
if(t->left!=NULL)//若左孩子结点不为空,进对列。
{
p.push(t->left);
}
if(t->right!=NULL)//若右孩子结点不为空进对列
{
p.push(t->right);
}
}
return 0;
}