Я пытался реализовать BST в C++. Это специальная функция-член, выполняемая для обхода и возврата вектора с элементами дерева. Теперь проблема возникает с функцией pop pop(), которую я установил для текущего узла.
void value not ignored as it ought to be
BST: значение void не игнорируется, так как оно должно быть
Я понимаю, что пустой стек будет возвращать значение недействительного после предыдущего попа() call.But то, что это решение этой проблемы, потому что это необходимо в этом traversal algorithm получить последний узел из стека.
vector <int> BSTree::in_order_traversal()
{
vector <int> list;
stack <Node *> depthStack;
Node * cur = root;
while (!depthStack.empty() || cur != NULL) {
if (cur != NULL) {
depthStack.push(cur);
cur = cur->left;
}
else {
cur = depthStack.pop(); // Heres the line
list.push_back(cur->key);
cur = cur->right;
}
}
return list;
}
Вы делаете что-то в своем коде с «возвращаемым значением» функции возврата в пустоту. Прекратите делать это, это не имеет никакого смысла. – Mat