代码比较简单,潇小白就直接放代码啦!如果有什么问题欢迎在下方评论哦!让我们一起进步,向大佬进发!
代码如下:
#include <stdio.h>
#include <malloc.h>
#include <conio.h>
typedef char ElemType;
typedef struct node
{
ElemType data; //数据元素
struct node *lchild; //指向左孩子
struct node *rchild; //指向右孩子
}*BitTree;
void CreatBiTree(BitTree *bt)
{
char ch;
ch=getchar();
if(ch=='#')
*bt=NULL;
else
{
*bt=(BitTree)malloc(sizeof(BitTree));
(*bt)->data=ch;
CreatBiTree(&((*bt)->lchild));
CreatBiTree(&((*bt)->rchild));
}
}
int Like(BitTree b1,BitTree b2)
{
int like1,like2;
if(b1==NULL&&b2==NULL)
return 1;
else if(b1==NULL||b2==NULL)
return 0;
else
{
like1=Like(b1->lchild,b2->lchild);
like2=Like(b1->rchild,b2->rchild);
return (like1&&like2);
}
}
void main()
{
BitTree T1,T2;
int treeleaf;
printf("请先输入二叉树A中的元素(以扩展先序遍历序列输入其中,其中#代表空子树):\n");
CreatBiTree(&T1);
getchar();
printf("请输入二叉树B中的元素(以扩展先序遍历序列输入其中,其中#代表空子树):\n");
CreatBiTree(&T2);
treeleaf=Like(T1,T2);
if(treeleaf)
printf("A与B相似\n");
else if(treeleaf==0)
printf("A与B不相似\n");
}
运行结果如下:
因为潇小白也是一个代码初期学习者,所以写的都是比较简单的程序,希望大家不要嫌弃哦,小编也会继续为大家呈现优秀的代码的!谢谢大家的支持!