Я пытаюсь создать повторяющийся метод struct в моем коде, чтобы пройти через двоичное дерево поиска. Но я получаю ошибки при компиляции и не знаю, в чем причина.
У меня есть Node* findNode(const Node *, const Object &);
в приватном разделе .h файла
и
Node* BSTree::findNode(const Node* current, const Object &target){
if(*current->item == target)
return current;
Node* temp = NULL;
if(current->nodeLeft != NULL){
temp = findNode(current->nodeLeft, target);
if(temp != NULL)
return temp;
}
if(current->nodeRight != NULL){
temp = findNode(current->nodeRight, target);
if(temp != NULL)
return temp;
}
return NULL;
}
в ср.
Я генерирую следующие ошибки:
- ошибка C2143: синтаксическая ошибка: отсутствует ';' до '*'
Ошибка C4430: отсутствует указатель типа - предполагается int. Примечание: C ++ не поддерживает default-int
Ошибка C4430: отсутствует указатель типа - предполагается int. Примечание: C ++ не поддерживает default-int
ошибка C2556: 'int * BSTree :: findNode (const BSTree :: Node *, const Object &)': перегруженная функция отличается только типом возврата от 'BSTree :: Node * BSTree :: findNode (const BSTree :: Node * , const Object &) '
Все ошибки компилятора указывают на первую строку кода в cpp. Я попытался найти коды ошибок, но не нашел ничего, что ответило бы на мой вопрос относительно причины.
Что является причиной ошибок и почему мой компилятор читает его в 'int BSTree', а не в Node * BSTree? Я делаю синтаксическую ошибку или забываю включить? На данный момент я просто включил iostream и fstream.
Заранее благодарю всех, кто нашел время, чтобы прочитать это.
Редактировать:
Чтобы ответить на вопрос Колина.
У меня есть #include "BSTree.h" в моем .cpp
И в .h у меня есть:
#ifndef BSTREE_H
#define BSTREE_H
#include <iostream>
#include <fstream>