1.
Btree create_Node()
{
Btree s=(Btree)malloc(sizeof(struct Node));
if(NULL==s)
return NULL;
s->data='\0';
s->lchild=s->rchild=NULL;
return s;
}
Btree create_tree()
{
datatype element;
printf("please enter element:");
scanf(" %c",&element);
if('#'==element)
return NULL;
Btree tree=create_Node();
tree->data=element;
tree->lchild=create_tree();
tree->rchild=create_tree();
return tree;
}
2.
void front(Btree tree)
{
if(NULL==tree)
return;
printf("%c",tree->data);
front(tree->lchild);
front(tree->rchild);
}
3.
void middle(Btree tree)
{
if(NULL==tree)
return;
middle(tree->lchild);
printf("%c",tree->data);
middle(tree->rchild);
}
4.
void back(Btree tree)
{
if(NULL==tree)
return;
back(tree->lchild);
back(tree->rchild);
printf("%c",tree->data);
}
5.
void Count(Btree tree,int *n0,int *n1,int *n2)
{
if(NULL==tree)
return;
if(NULL==tree->lchild && NULL==tree->rchild){
++*n0;
}else if(NULL!=tree->lchild && NULL!=tree->rchild){
++*n2;
}else{
++*n1;
}
Count(tree->lchild,n0,n1,n2);
Count(tree->rchild,n0,n1,n2);
}
6.
int Deep(Btree tree)
{
if(NULL==tree)
return 0;
int left_deep=1+Deep(tree->lchild);
int right_deep=1+Deep(tree->rchild);
return left_deep>right_deep?left_deep:right_deep;
}