2 qq 34646580 qq_34646580 于 2016.04.13 15:22 提问

二叉排序树的C++实现,编译通过,无法运行

#include
using namespace std;
struct tree{
tree lchild;
tree*rchild;
int data;
};
bool serchBST(tree *T,int key ,tree*f,tree
&p);
void insertBST(tree*T,int key);
bool serchBST(tree T,int key ,tree *f,tree *&p)
{
if(!T)
{p=f;return false;}
else if(T->data==key)
{p=T;return true;}

else if(keydata)
return serchBST(T->lchild,key,T,p);
else
return serchBST(T->rchild,key,T,p);
}
void insert(tree*T,int key)
{
tree*p=NULL;
if(!serchBST(T,key,NULL,
&p))
{
tree *s=new tree;
s->data=key;
s->lchild=s->rchild=NULL;
if(keydata)
p->lchild=s;
else
p->rchild=s;
delete s;
}

}
int main()
{
tree a;
tree p=NULL;
a.data=62;
a.lchild=a.rchild=NULL;
insert(&a,77);
cout<<serchBST(&a,77,NULL,
&p);
}
代码如上所示,编译通过,算法没问题,但用VS调试的无法运行,serch函数,指针f指向T的双亲,初始调用NULL。查找成功,则指针p指向该元素结点,否则指向查找路径上访问的最后一个结点。感觉是insert函数有问题,请高手解答

2个回答

CSDNXIAOD
CSDNXIAOD   2016.04.13 15:33

二叉排序树_C++实现
二叉排序树的C++实现
二叉排序树的实现
----------------------biu~biu~biu~~~在下问答机器人小D,这是我依靠自己的聪明才智给出的答案,如果不正确,你来咬我啊!

qq423399099
qq423399099   Ds   Rxr 2016.04.13 15:44

有很多地方少*号,if(keydata)也看不懂,难道是if(key==T->data)?不知道是不是复制粘贴的问题?
建议楼主重新发一下
把代码放在代码标识里

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
二叉排序树的插入、查找、删除、遍历(C语言版)
#include #include typedef struct treeNode { int data; struct treeNode *left; struct treeNode *right; }treeNode; treeNode* FindMin(treeNode *node) { if(node==NULL)
二叉排序树(BST)的思路及C语言实现
请注意,为了能够更好的理解二叉排序树,我建议各位在看代码时能够设置好断点一步一步跟踪函数的运行过程以及各个变量的变化情况一.动态查找所面临的问题在进行动态查找操作时,如果我们是在一个无序的线性表中进行查找,在插入时可以将其插入表尾,表长加1即可;删除时,可以将待删除元素与表尾元素做个交换,表长减1即可。反正是无序的,当然是怎么高效怎么操作。但如果是有序的呢?回想学习线性表顺序存储时介绍的顺序表的缺点
一个简单的个人通讯录(基于二叉排序树)(加注释版~~~~)
TreeNode.h: /********************************************************************************** * 基于二叉排序树的个人通信录 * * * * * * 文 件: Treenode.h * 作 者: 邹亚鹏 * 部 门: 南京工程学
一个先序或后序序列 还原唯一 二叉排序树 (C语言实现)
以下 首先是说明,一个先序
C语言实现二叉排序树
#include <stdio.h> #include <string.h> #include <stdlib.h>/* 定义结构体 */ typedef int TypeData; typedef struct stBiTreeNode { TypeData data; struct stBiTreeNode *lchild, *rchild; }BITREENODE;/*
数据结构之---C语言实现二叉排序树(BinarySortTree)
数据结构之---C语言实现二叉排序树(BinarySortTree)
C语言实现数据结构 二叉排序树
C语言实现数据结构 二叉排序树C语言实现数据结构 二叉排序树C语言实现数据结构 二叉排序树C语言实现数据结构 二叉排序树
C语言编写的二叉排序树的插入、删除
用C语言编写的一个程序,实现功能为对输入文本文件“in.txt"中的英文单词按照字典顺序输出,并统计单词出现的次数。所涉及到的内容为二叉排序树的查询和插入。
二叉排序树C语言实现一
二叉排序树插入,删除,查找等各种操作手工模拟并用C语言实现。
【数据结构与算法】二叉排序树C实现(含完整源码)
二叉排序树(Binary Sort Tree,简称BST),又称二叉查找树,是红黑树、AVL树等的基础。它或是一棵空树,或者是具有下列性质的一棵二叉树: 1、若它的左子树不空,则左子树上所有节点的值均小于它的根节点的值; 2、若它的右子树不空,则右子树上所有节点的值均大于它的根节点的值; 3、它的左右子树也分别为二叉排序树。 二叉排序树通常有查找、插入、删除等操作。查找操作很简单,无非就是递归查找,有点类似二叉树遍历的过程。插入操作也不难,一般是先在二叉排序树pTree中查找,看是