C语言数据结构(二叉排序树的创建及查找算法)

以下是我编的二叉排序树的创建及查找算法,可是好像有问题,请帮我看一下,麻烦了!!#include<stdio.h>#include"malloc.h"typedefstr... 以下是我编的二叉排序树的创建及查找算法,可是好像有问题,请帮我看一下,麻烦了!!

#include<stdio.h>
#include"malloc.h"
typedef struct BTNode
{
int key;
struct BTNode *lchild;
struct BTNode *rchild;
}BTNode;
//定义二叉排序树插入结点的算法
int BSTInsert(BTNode *T,int k)
{
if(T==NULL)
{
T=(BTNode *)malloc(sizeof(BTNode));
T->lchild=T->rchild=NULL;
T->key=k;
return 1;
}
else
{
if(k==T->key)
return 0;
else if(k<T->key)
return BSTInsert(T->lchild, k);
else
return BSTInsert(T->rchild, k);
}
}
//定义二叉排序树的创建算法
BTNode *createBST(int k[],int n)
{
BTNode *T;
T=NULL;
for(int i=0;i<=n-1;i++){
BSTInsert(T,k[i]);
}
return T;
}
//定义二叉排序树的查找算法
BTNode *BSTSearch(BTNode *T,int k)
{
if(T==NULL)
return NULL;
else
{
if(T->key==k)
return T;
else if(k<T->key)
{
return BSTSearch(T->lchild, k);
}
else
{
return BSTSearch(T->rchild, k);
}
}
}
void main()
{
int a[50]={5,3,2,4,1};

BTNode *T=createBST(a,5);
BTNode *t=BSTSearch(T,4);
printf("%p\n",t);//我的问题在这里,我想打印指向关键字4所在的指针地址,可是打印出的
//是空地址,测试其它关键字,打印出的也是空地址,不知道测序哪地方
//出错了,能帮我看一下吗麻烦了!!

}
展开
 我来答
HongZe081100
2012-08-22 · TA获得超过580个赞
知道小有建树答主
回答量:436
采纳率:0%
帮助的人:439万
展开全部
int BSTInsert(BTNode *&T,int k)//修改此处,理由:引用型操作
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式