gpt4 book ai didi

c++从二叉搜索树中的文本文件输入单词

转载 作者:太空宇宙 更新时间:2023-11-04 11:36:56 26 4
gpt4 key购买 nike

我正在尝试编写一个程序,该程序将从文本文件中读取单词并将其插入到二叉树中。如果单词超过 10 个字符,则该单词将被截断为 10 个字符。我觉得我真的很接近得到这个,但是当我运行程序时,它崩溃了,我没有收到任何错误。我只用整数测试了二叉搜索树,它可以工作。我还测试了从文本文件中读取单词而不将其放入二叉树中,这也有效。但是当我将两者融合在一起时……这就是我遇到问题的地方。此外,文本文件的末尾用“#”表示。就这样休息;有道理。

#include <iostream>
#include <fstream>
#include <string>

using namespace std;

struct Node{
string data;
Node* left;
Node* right;
};

Node* GetNewNode(string data){
Node* newNode = new Node();
newNode->data=data;
newNode->left = newNode->right = NULL;
}

Node* Insert(Node* rootPtr,string data){
if(rootPtr == NULL){
rootPtr = GetNewNode(data);
return rootPtr;
}
else if(data<= rootPtr->data){
rootPtr->left = Insert(rootPtr->left,data);
}
else {
rootPtr->right = Insert(rootPtr->right,data);
}
return rootPtr;
}

int main() {
string word;
ifstream inFile;
Node* rootPtr = NULL; // Pointer to the root node

inFile.open("example.txt");
if (!inFile) {
cout << "Unable to open text file";
}

while (inFile >> word) {
rootPtr = Insert(rootPtr,word.substr(0,10));
if (word == "#")
break;
}

inFile.close();
}

感谢任何输入!

最佳答案

您需要从 GetNewNode 返回 newNode

此外,您应该在插入单词之前检查#,除非您希望树中出现“#”。

关于c++从二叉搜索树中的文本文件输入单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22750953/

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