gpt4 book ai didi

c++ - 二叉搜索树

转载 作者:行者123 更新时间:2023-11-28 07:44:58 25 4
gpt4 key购买 nike

<分区>

 template <class T>
void BinaryTree<T>::LoadTree(const char *file)
{
ifstream fin;
fin.open(file);
string buffer;
T buff;
while (!fin.eof())
{
getline(fin,buffer,'~');
fin>>buff;

TreeNode<T> *temp,*temp1;
temp=Root;
temp1=temp;
while (temp!=NULL)
{
temp1=temp;
TreeNode<T> *Right=temp->RightChild;
TreeNode<T> *Left=temp->LeftChild;
if (temp->key>buff)
{
temp=temp->LeftChild;
}
else if (temp->key<buff)
{
temp=temp->RightChild;
}
}
temp=new TreeNode<T>(buff,buffer);
if (temp!=Root)
temp->Parent=temp1;
}
fin.close();
}

我正在制作一个二叉搜索树。这是我的一段代码,我在其中输入一个文件,其中包含一个名称和一个键,如“Alex~ 231423”。我的代码是否生成了正确的 BST,因为当我运行时它,有一条消息说“此应用程序已请求运行时以不寻常的方式终止它。请联系应用程序的支持团队以获取更多信息”。我真的不明白出了什么问题。我将不胜感激任何帮助***前面的问题解决了,但是insertNode函数出现的msg如下:

template <class T>
void BinaryTree<T>::insertNode(T Key,string Val)
{

TreeNode<T> *temp,*temp1;
temp=Root;
while (temp!=NULL)
{
temp1=temp;
if (temp->key>Key)
{
temp=temp->LeftChild;
}
else if (temp->key<Key)
{
temp=temp->RightChild;
}
}
temp=new TreeNode<T>(Key,Val);
temp->Parent=temp1;
}

这里是树节点部分

template <class T>
struct TreeNode{
string value;
T key;
TreeNode<T> *Parent;
TreeNode<T> *LeftChild;
TreeNode<T> *RightChild;
TreeNode (T k,string Val)
{
this->value=Val;
this->key=k;
this->Parent=NULL;
this->LeftChild=NULL;
this->RightChild=NULL;
}
};

Actually I was getting the error for search function,not insert function.I am sorry for inconvenience.here is the code

template <class T>
string BinaryTree<T>::searchNode(T Key)
{
TreeNode<T> *temp=Root;
while (temp!=NULL)
{
if (temp->key==Key)
{
return temp->value;
}
if (temp->key>Key)
{
temp=temp->LeftChild;
}
else if (temp->key<Key)
{
temp=temp->RightChild;
}
}
return NULL;
}

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com