中易网

二叉排序树插入结点算法

答案:2  悬赏:20  
解决时间 2021-03-08 04:59
二叉链表结构定义 typedef int datatype; typedef struct nodeT {datatype data; struct nodeT *lchild, *rchild; }BinaryTree; //二叉排序树插入运算 插入成功返回1 否则返回0 int Insert_BinarySortTree(BinaryTree *T,datatype x){ BinaryTree *p=T,*father=null; //创建新二叉树结点容纳x BinaryTree *BT=new BinaryTree; BT->data=x; BT->lchild=BT->rchild=null; //寻找插入位置 while(p){ if(p->data==x) {cout<<"this value is already exit in BinaryTree!"<<endl; return 0;} father=p;//记忆 p=(p->data<x) ? p->rchild :p->lchild; } //T是空树 插入在树根 if(T==null) {T=BT; return 1;} //T不是空树 插入在非树根 ((father->data<x) ? father->rchild :father->lchild) =BT; return 0' } void main(){ BinaryTree *BT=null; Insert_BinarySortTree(BT,20); if(BT==null) cout<<"yes"; } 我运行这个程序的输出就是yes 这是为什么? 我在Insert_BinarySortTree里面有if(T==null) {T=BT; return 1;}这句话 那main中的BT怎么可能还是null呢
最佳答案
问题应该出在
int Insert_BinarySortTree(BinaryTree *T,datatype x)
你修改为int Insert_BinarySortTree(BinaryTree **T,datatype x) ==》 指针的指针
试试看,否则传值而已,等函数返回 BT 该是NULL还是NULL
全部回答
nclude iostream.h
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
oppo a31手机的水印
涪陵五中在什么地方啊,我要过去处理事情
南阳理工学院是民办学校还是公办学校?
可乐视频社区有毒吗
成都三原外国语好吗?
赞美山峡的名诗句
开发商隐瞒规划用途把小区会所出售给我构成合
瑞爵电动车-洗手间地址在哪,我要去那里办事
Trapcode Particular2.0注册没反应
有关于北大荒知青的电视剧
鸿鑫航空火车售票我想知道这个在什么地方
我是贵州的,中国地质大学(北京)近几年在贵州
假如你一个人去旅行,你可以带一个东西,你会
有哪位仁兄能介绍一下济南裕兴化工的待遇情况
CorelDRAW如何对称调图
推荐资讯
在中国小说里的典型人物形象和外国小说里的人
白皮三副要实习多久?
轮胎爆了 以后 开到修理厂 5公里的样子 水泥
lexi belle电影下载
店面转让费是什么意思?
毛集实验区毛集镇河西社区居民委员会地址有知
梦里爱上一个美丽女孩
住房维修基金不交不给办房证合法吗
客厅38平方大金cdxls71fv2c能用吗
福顺全牛NO.2我想知道这个在什么地方
果冉爱水果批发行020线下体验店在什么地方啊
绅港花园(东北2门)这个地址在什么地方,我要
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?