1:
2:二叉树代码
#include "btree.h"
node_p creat_btree() //创建二叉树
{
char data='\0'; //定义一个char类型的变量,接收输入的结点的值
scanf(" %c",&data); //用户终端输入想创建的二叉树(输入结点值),scanf需要空格吸收垃圾字符
if(data=='#') //判断用户输入是否有意义的结点值
{
return NULL; //如果是#不创建二叉树
}
node_p new=creat_node(data);
new->lchild=creat_btree();
new->rchild=creat_btree();
return new; //把第一个输入的根结点返回
}
node_p creat_node(char data) //创建结点
{
node_p new=(node_p)malloc(sizeof(node));
if(new==NULL)
{
printf("创建结点失败\n");
return NULL;
}
new->data=data;
return new;
}
void pri_show(node_p T) //先序遍历
{
if(T==NULL)
return;
printf("%c",T->data);
pri_show(T->lchild);
pri_show(T->rchild);
}
void mid_show(node_p T) //中序遍历
{
if(T==NULL)
return;
mid_show(T->lchild);
printf("%c",T->data);
mid_show(T->rchild);
}
void last_show(node_p T) //后序遍历
{
if(T==NULL)
return;
last_show(T->lchild);
last_show(T->rchild);
printf("%c",T->data);
}