Работает на C++ здесь. Я пытаюсь разработать конкретную программу, которая создает BST из-за обхода порядка. Вот первая партия кода:Ошибка: неверное преобразование из 'Node *' в 'int'
class Node {
private:
int val;
Node *left;
Node *right;
public:
Node() : val(0), left(NULL), right(NULL) {}
Node (int v) : val(v), left(NULL), right(NULL) {}
Node (int v, Node *l, Node *r) : val(v), left(l), right(r) {}
Node& operator = (Node& rhs) {
if (&rhs == this) return *this;
val = rhs.val;
left = rhs.left;
right = rhs.right;
return *this;
}
}*root;
Я вынул некоторые из функций, но это основы. Теперь вот другой фрагмент кода:
Node *temp = new Node();
if (preorder[trav] <= N)
{
temp = root;
root->goLeft(pre_ordered, traverse);
traverse++;
}
else
{
temp = root;
root->goRight(pre_order, traverse);
traverse++;
}
Однако, тогда я получаю «ошибка: неправильное преобразование из„Node *“в„межд“» на линии «Темп = корень». Есть идеи? Мне кажется, что я устанавливаю один узел равным другому, поэтому я не понимаю, что случилось. Посмотрел онлайн и ничего не нашел. Некоторые подобные ошибки, но достаточно разные, чтобы не быть полезными.
Я буду откровенен, что это для школьного задания, поэтому я не ищу прямых ответов. Просто подсказки о том, что мне нужно изменить или где мне нужно выглядеть, было бы здорово! Благодарю.
EDIT: Точная ошибка:
main.cpp:160:15: error: invalid conversion from ‘Node*’ to ‘int’ [-fpermissive]
temp = root;
^
EDIT Я нашел его. Я извиняюсь.
Я был глуп и не выглядел достаточно тяжело, чтобы обнаружить, что я переопределял «темп» как int в основной функции. Извините за то, что тратил время на ребята.
Не могу ответить на мой собственный вопрос, так как недостаточно rep.
Дайте нам больше контекста вокруг вашего второго бита кода - по крайней мере, входящей функции. – Elemental
[Работает для меня] (http://ideone.com/RNh8JD), как только я исправляю неправильные имена участников. Не могли бы вы разместить тестовый пример, демонстрирующий ошибку? –
Ваш код не содержит 'left' и' right'. Это 'left_child' и' right_child'? Кроме того, почему вы создали новый «узел», а затем потеряете его, назначив «root»? – crashmstr