Я пытаюсь сделать программу кроссворда с использованием BST-х, я в настоящее время имеют следующие слова вставлены в дерево:Двоичное дерево - В порядке Traversal
слово, воля, wyr, рубчик, увядание, яблоко, абс, Вак (вставляется в таком порядке)
, но каждый раз, когда я отлаживать программу в Visual Studio, я получаю сообщение об ошибке
Exception thrown at 0x008DE28C in AVLBSTcrosswordhunter.exe: 0xC0000005: Access violation writing location 0x0000001C.
Однако при отслеживании переменных моя проходится переменная никогда не устанавливается в 1, так я не выхожу из этого цикла while, ошибка происходит внутри, im просто не уверен wh и почему.
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;
}
}
}
разъяснений, слово я ищу это «ж ***» (в «*», являющиеся групповые символы), так что, если заявление проверяет, если температура указателя имеет подстроку ш, и если звук увеличивает счет, поэтому я могу отправить номер обратно на сколько совпадений с этим подстановочным знаком.
Кроме того, temp установлен на корень (слово) перед циклом while.
Благодарим за помощь, которую вы можете предоставить!