【发布时间】:2014-09-27 21:36:01
【问题描述】:
我正在尝试在 C++ 中创建一个三叉树,它读取一个文件并根据它读取的单词创建树。每个节点都有一个字符,然后是文件中以该字符开头的所有单词的列表、父指针、left1 指针、left2 指针和 right 指针。
在我的程序中,我有结构:
struct node_t{
node_t *parent;
node_t *left1;
node_t *left2;
node_t *right;
char letter;
vector<string> wordList;
int lineCount;
};
我有插入单词的原型
int insertWord(ifstream &dataFile, node_t *parent, char myLetter);
然后在 Main 我调用一个函数 insertWord
if (insertWord(dataFile, &root, ch) == 0{
//if no errors occurred in function do something
}
然后在 insertWord 中,如果单词属于父数组,我尝试将单词添加到父节点的向量数组中:
parent->wordList.push_back(word);
当我尝试在 main 中打印出列表时,它没有将单词添加到列表中。当我在 insertWord 中打印出来时,它确实将单词添加到列表中。 我知道这是一个指针问题,但我只是看不出我做错了什么。我没有发布我所有的代码,因为代码太多了。
关于如何成功地将我的单词添加到列表中以便在 main 中打印出来的任何想法?
【问题讨论】:
-
您正在正确访问它。您可能试图从错误的对象打印,或者父对象没有指向您认为的对象。