为什么编译时没有错误但是运行时输入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);
相关分类