猿问

求大神指教,为什么我创建的排序二叉树输入值后程序就死掉了???

为什么编译时没有错误但是运行时输入m后再输入数据时却是直接有问题l???

我查了改变实参指针的知识点,可是还是不会,请问可以在百忙之中帮忙看看么!!不胜感激!!!

还有请问可以指点些vc调试的实用些的吗?我看了网上的视频但看不懂!!!!谢谢大家啦!

#include<stdio.h>

#include<stdlib.h>

struct BinSearchNode;

typedef struct BinSearchNode *PBinSearchNode;

typedef struct BinSearchNode *BinSearchTree;

typedef BinSearchTree *PBinSearchTree;



struct BinSearchNode

{

int info;

PBinSearchNode llink,rlink;

};



int search(PBinSearchTree ptree,int key,PBinSearchNode *position)

{

PBinSearchNode p,q;

p=*ptree;

q=p;

    while(p!=NULL)

{

   q=p;

   if(p->info==key)

{

   *position=p;

   return 1;}

   else if(p->info>key)

p=p->rlink;

      else p=p->rlink;

}

    *position=q;

return 0;

}


void preOrder(BinSearchTree t)

{

if(t==NULL)  return;

printf("%d",t->info);

preOrder(t->llink);

preOrder(t->rlink);

}





void insert(PBinSearchTree ptree,int key,int a,PBinSearchNode *position)

{

    PBinSearchNode p;

    if(a==1)

return ;

p=(PBinSearchNode)malloc(sizeof(struct BinSearchNode));

if(p==NULL)

{

printf("error");

return ;}

p->info=key;

p->llink=p->rlink=NULL;

if((*position)==NULL)

*ptree=p;

else if(key < (*position)->info)

(*position)->llink=p;

    else (*position)->rlink=p;

return ;

}






int main() 

{

PBinSearchNode *position;

int i,key,m,a;

PBinSearchTree ptree;

position=NULL;ptree=NULL;


printf("要构造一个有m个节点的二叉排序树");


scanf("%d",&m);

   for(i=0;i<m;i++)

{

         

  scanf("%d",&key);

           a=search(ptree,key,position);

           insert(ptree,key,a,position);

}

preOrder(*ptree);


小嘿哟
浏览 1329回答 0
0回答
随时随地看视频慕课网APP
我要回答