#include <iostream>
#include "CreatTree.h"
#include <queue>
TreeNode * CreatTree(){
char da;
std::cout<<"输入节点的数据:";
std::cin>>da;
if (da == '#')
{
return nullptr;
}
TreeNode * T = new TreeNode;
T->data = da;
T->left = CreatTree();
T->right = CreatTree();
return T;
}
void ShowTreeNode(TreeNode *root){
if (root == nullptr)
{
return;
}
ShowTreeNode(root->left);
std::cout<<root->data<<" ";
ShowTreeNode(root->right);
}
void Bfs_Tree(TreeNode *root, std::queue<TreeNode *> &Q){
Q.push(root);
while(!Q.empty()){
unsigned long size = Q.size();
while (size--)
{
TreeNode * tmp;
tmp = Q.front();
Q.pop();
std::cout<<tmp->data;
if(tmp->left != NULL)
{
Q.push(tmp->left);
}
if (tmp->right != NULL)
{
Q.push(tmp->right);
}
}
}
std::cout<<std::endl;
}
void test(){
using namespace std;
TreeNode * root;
root = CreatTree();
queue<TreeNode *> Q;
Bfs_Tree(root, Q);
}
int main(void){
test();
return 0;
}