ZBLOG

#include #include #include #define ERROR 0 #define OK 1 #define FALSE -1 #define TRUE 1 typedef struct Node { char data; struct Node * LChild; struct Node * RChild; }BitNode, * BiTree; ...

void CreateBiTree(BiTree *bt) {

  1. char ch;
  2. scanf("%c", &ch);
  3. getchar();
  4. if (ch == '.')
  5. *bt = NULL;//空节点
  6. else
  7. {
  8. *bt = (BitNode *)malloc(sizeof(BitNode));
  9. (*bt)->data = ch;//根节点
  10. CreateBiTree(&((*bt)->LChild));//递归创建左子树
  11. CreateBiTree(&((*bt)->RChild));//递归创建右子树
  12. }

}

int PreOrder(BiTree root1, BiTree root2) {

  1. if (root1 == NULL && root2 == NULL)//两个树均为空的情况,认为是相等的
  2. return TRUE;
  3. else if (root1 != NULL && root2 != NULL)//两个树均不为空的情况
  4. {
  5. if (Compare(root1->data, root2->data))//对比节点值,如果相等继续向下遍历
  6. {
  7. if (PreOrder(root1->LChild, root2->LChild) && PreOrder(root1->RChild, root2->RChild))
  8. return TRUE;//左右子树都相等才返回TRUE
  9. else
  10. return FALSE;
  11. }
  12. else//如果节点不相等则返回FALSE
  13. return FALSE;
  14. }
  15. else//一个为空,一个不为空,认为是不等的
  16. return FALSE;

}

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://golang.0voice.com/?id=1180

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?