二叉搜索树-按顺序遍历
Binary Search Tree - In-order Traversal
我正在尝试使用BST制作一个填字游戏程序,我目前有以下单词插入到树中:
word, will, wyr, wale, will, apple, abs, wack(按此顺序插入)
但是每次我在visual studio中调试程序时,我都会得到一个错误
Exception thrown at 0x008DE28C in AVLBSTcrosswordhunter.exe: 0xC0000005: Access violation writing location 0x0000001C.
然而,当跟踪变量时,我遍历的变量从未设置为1,所以我不退出这个while循环,错误发生在里面,我只是不确定在哪里和为什么。
while (!traversed)
{
if (temp != NULL)
{
if (temp->word.substr(0, sub_num) == value.substr(0, sub_num))
{
count++;
}
s.push(temp);
temp = temp->left;
}
else
{
if (!s.empty())
{
temp = s.top();
s.pop();
temp = temp->right;
}
if (s.empty())
{
traversed = 1;
}
}
}
澄清一下,我正在搜索的单词是"w***"("*"是通配符),所以if语句检查指针temp是否有子字符串w,如果声音增加计数,所以我可以发送一个数字回来多少匹配通配符搜索。
同样,temp被设置为while循环之前的根(单词)。
谢谢你能提供的任何帮助!
似乎我在匆忙中创建了两个遍历变量和两个堆栈变量,现在似乎可以工作了!
相关文章:
- 在循环中按顺序遍历成员变量
- 二叉树级别顺序遍历在leetcode中
- 使用二叉树的关卡顺序概念的垂直顺序遍历
- 按顺序遍历 AVL 树,将值保存在数组中
- 树木中的BFS(级别顺序遍历)
- 按特定顺序遍历 NxN 矩阵的上三角形
- 执行策略如何用于C++中的顺序遍历算法
- 二叉树级别顺序遍历 LeetCode
- 如何修复关卡顺序遍历问题(二叉树)的无限循环错误
- 使用队列在二进制树中的水平顺序遍历
- 二进制树的水平顺序遍历
- 二叉树顺序遍历在C++
- 二叉树顺序遍历错误:没有用于调用的匹配函数
- 二进制搜索树中按顺序遍历的复杂性(使用迭代器)
- 如何以相反的顺序遍历 boost::d ynamic_bitset
- 关卡顺序遍历:删除子树
- 使用级别顺序遍历将节点插入二叉树
- 二叉树顺序遍历导致堆栈溢出
- 二进制搜索树,按顺序遍历,步骤3逻辑辅助
- 线程内二叉树的插入或顺序遍历有什么问题