二叉排序树的输出为啥不能够正常输出呢???

来源:百度知道 编辑:UC知道 时间:2024/06/21 21:50:31
#include <iostream>
#include <malloc.h>
using namespace std;

typedef int keyType;
typedef int elemType;

typedef struct Node
{
keyType key;
elemType otheItem;
struct Node *lchild,*rchild;
}*nodePtr;

nodePtr BSTSearch(nodePtr t,keyType key)//查找关键字key
{
if (t == NULL)
{
return NULL;
}
else if(t->key == key)
{
return t;
}

else if (t->key < key)
{

return (BSTSearch(t->rchild,key));
}

else
{
return (BSTSearch(t->lchild,key));

}
}

nodePtr BSTInsert(nodePtr t,nodePtr s)//插入节点
{

if (t == NULL)
{
t = s;

return (t);
}

else if (t->key > s->key)
{
BSTInsert(t->lchild,s);
}

else
{
BSTInsert(t->rchild,s);

}

return (

修改如下,请注意注释位置

//---------------------------------------------------------------------------
#include <iostream>
#include <malloc.h>
using namespace std;

typedef int keyType;
typedef int elemType;

typedef struct Node
{
keyType key;
elemType otheItem;
struct Node *lchild,*rchild;
}*nodePtr;

nodePtr BSTSearch(nodePtr t,keyType key)//查找关键字key
{
if (t == NULL)
{
return NULL;
}
else if(t->key == key)
{
return t;
}

else if (t->key < key)
{

return (BSTSearch(t->rchild,key));
}

else
{
return (BSTSearch(t->lchild,key));

}
}

nodePtr BSTInsert(nodePtr t,nodePtr s)//插入节点
{

if (t == NULL)
{
t = s;

return (t);
}

else if (t->key > s->key)
{
t->lchild=BSTIns