判断是否是同一颗二叉树

来源:互联网 发布:淘宝卖家怎么买运费险 编辑:程序博客网 时间:2024/05/21 17:07
#include<stdio.h>#include<stdlib.h>typedef struct TreeNode* BiTree;typedef char ElementType;struct TreeNode{ElementType Data;BiTree Left;BiTree Right;};BiTree CreateTree(){ElementType ch;BiTree T = (BiTree)malloc(sizeof(struct TreeNode));if(T == NULL){printf("Over flow");return NULL;}scanf("%c",&ch);if(ch == '#')T = NULL;else{T->Data = ch;T->Left = CreateTree();T->Right = CreateTree();}return T;}int IsEqual(BiTree T1, BiTree T2){if(T1 == NULL && T2 == NULL) //包含 最后 的情况T1T2 一直相等直到最后都指向NULL return 1;                //属于 基准情绪 if(T1 && T2 && T1->Data == T2->Data){if(IsEqual(T1->Left, T2->Left) && IsEqual(T1->Right, T2->Right))return 1;}return 0;}int main(){BiTree T1, T2;T1 = CreateTree();fflush(stdin);//清除 残余信息 T2 = CreateTree();if(IsEqual(T1, T2))printf("是相同的树");elseprintf("不是相同的树");return 0;}

原创粉丝点击