1 #include <iostream>
2 #include <queue>
3 using namespace std;
4 typedef struct Bnode {
5 int data;
6 struct Bnode *lchild,*rchild;
7 }Bnode,*Btree;
8 void preorder(Btree T){//先序
9 if(T){
10 cout<<T->data<<" ";
11 preorder(T->lchild);
12 preorder(T->rchild);
13 }
14 }
15 void inorder(Btree T){//中序
16 if(T){
17 inorder(T->lchild);
18 cout<<T->data<<" ";
19 inorder(T->rchild);
20 }
21 }
22 void posorder(Btree T){//后序
23 if(T){
24 posorder(T->lchild);
25 posorder(T->rchild);
26 cout<<T->data<<" ";
27 }
28 }
29 bool leveltraverse(Btree T){
30 Btree p;
31 if(!T)
32 return false;
33 queue<Btree>Q;//创建队列 指针类型
34 Q.push(T);//根指针入队
35 while(!Q.empty()){//如果队列不为空
36 p=Q.front();//取出队头
37 Q.pop();//队头元素出队
38 cout<<p->data<<" ";
39 if(p->lchild)
40 Q.push(p->lchild);//左孩子指针入队
41 if(p->rchild)
42 Q.push(p->rchild);//右孩子指针入队
43 }
44 return true;
45 }
46 void Createtree(Btree &T){//创建二叉树
47 char ch;
48 cin>>ch;//按先序次序输入二叉树节点的值(一个字符)
49 if(ch=='#'){
50 T=NULL;//递归结束,建空树
51 }
52 else{
53 T=new Bnode;
54 T->data=ch;
55 Createtree(T->lchild);
56 Createtree(T->rchild);
57 }
58 }
59 int main(){
60
61 return 0;
62 }