#include <stdio.h>
#include <stdlib.h>
#include <queue>
using namespace std;
void preOrder(Node *node)
{
if(node==NULL) return;
printf("%d",node->k);
preOrder(node->l);
preOrder(node->r);
}
void inOrder(Node *node)
{
if(node==NULL) return;
preOrder(node->l);
printf("%d",node->k);
preOrder(node->r);
}
void postOrder(Node *node)
{
if(node==NULL) return;
preOrder(node->l);
preOrder(node->r);
printf("%d",node->k);
}
void layerOrder()
{
queue<Node*> q;
q.push(root);
while(!q.empty())
{
Node *n=q.front();
q.pop();
printf("%d",n->k);
if(n->l!=NULL) q.push(n->l);
if(n->r!=NULL) q.push(n->r);
}
}
void main()
{
int i;
root=NULL;
for(i=3;i<5;i++) insert1(i,'A'+i);
for(i=0;i<3;i++) insert1(i,'A'+i);
for(i=5;i<10;i++) insert1(i,'A'+i);
printf("
------前序遍历------
");
preOrder(root);
printf("
------中序遍历------
");
inOrder(root);
printf("
------后序遍历------
");
postOrder(root);
printf("
------层序遍历------
");
layerOrder();
printf("
");
}