舞书鎏 2020-03-25 14:28 采纳率: 0%
浏览 194

C建立二叉搜索树出现段错误

题目链接:https://pintia.cn/problem-sets/1211841066264109056/problems/1236509430527590400

判断是不是同一棵二叉搜索树
写的代码如下:(在自己编译器上可以通过,但是在OJ上显示段错误,希望大佬指点一下)

#include<stdio.h>
#include<malloc.h>
typedef struct BINODE{
    int value;
    struct BINODE *lchild,*rchild;
}BiTNode,*BiTree;
int flag=1;
//建立二叉搜索树
BiTNode *BuildBiTree(BiTree &T,int n,int a[]){
    int i,j;
    T=(BiTNode *)malloc(sizeof(BiTNode));
    T->value=a[0];  
    BiTree p=T,q,pre;
    p->lchild=NULL;
    p->rchild=NULL;
    for(i=1,j=1;j<n;i++){
        q=(BiTNode *)malloc(sizeof(BiTNode));
        q->value=a[j];
        pre=p;
        if(a[j]<=p->value){
            p=p->lchild;
            if(p==NULL){
                pre->lchild=q;
                j++; 
                q->lchild=NULL;
                q->rchild=NULL;
                p=T;
            }
        }
        else{
            p=p->rchild;
            if(p==NULL){
                pre->rchild=q;
                j++;
                q->lchild=NULL;
                q->rchild=NULL;
                p=T;
            }
        }
    }
}
//两棵树同时遍历进行判断
void InOrder(BiTree T,BiTree TT){
    if(T && TT){
        InOrder(T->lchild,TT->lchild);
        if(T->value!=TT->value) flag=0;
        InOrder(T->rchild,TT->rchild);
    }
}
int main(){ 
    int n=-1,k,i;
    int a[15];
    int b[15];  
    while(n!=0){    
        BiTree T=NULL,TT=NULL;  
        scanf("%d",&n);
        if(n!=0){
            scanf("%d",&k);
            for(i=0;i<n;i++){
                scanf("%d",&a[i]);      
            }
            BuildBiTree(T,n,a);
            while(k--){
                flag=1;
                for(i=0;i<n;i++){
                    scanf("%d",&b[i]); 
                }   
                BuildBiTree(TT,n,b);
                InOrder(T,TT);
                if(flag==1) printf("Yes\n");
                else  printf("No\n");               
            }
        }
    }
    return 0;
}

自己摸索很久了,发现不了问题,如果能解决,感激不尽!!

  • 写回答

1条回答 默认 最新

  • weixin_43405544 2020-03-25 19:34
    关注

    图片说明编译结果

    评论

报告相同问题?

悬赏问题

  • ¥15 想问一下stata17中这段代码哪里有问题呀
  • ¥15 flink cdc无法实时同步mysql数据
  • ¥100 有人会搭建GPT-J-6B框架吗?有偿
  • ¥15 求差集那个函数有问题,有无佬可以解决
  • ¥15 【提问】基于Invest的水源涵养
  • ¥20 微信网友居然可以通过vx号找到我绑的手机号
  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决