Проблема с функцией поиска бинарного дерева поиска без STL - PullRequest
0 голосов
/ 28 мая 2019
class BinarySearchTree
{
    struct Node
    {
        T data;
        Node * left;
        Node * right;
        Node(T key) :data(key), left(nullptr), right(nullptr) {}
    };

    Node * root;

    int size(Node * node);
    void printNode(Node*);
    void deleteNode(Node*);
    void insert(Node * node, Node * nodePtr);   
    void inorder(Node * root, void(*inorderPtr)(T &)) const;
    void preorder(Node * root, void(*preorderPtr)(T &)) const;
    void postorder(Node * root, void(*postorderPtr)(T &)) const;

public:

    BinarySearchTree();
    ~BinarySearchTree();
    T search(T value);
    BinarySearchTree(const BinarySearchTree<T> & source);
    const BinarySearchTree<T> & operator = (const Node & other);
    void insert(const T);
    void print();
    int size();
    void inorder(void(*output)(T &)) const;
    void preorder(void(*preorderPtr)(T &)) const;
    void postorder(void(*postorderPtr)(T &)) const;
};
template<class T>
inline T BinarySearchTree<T>::search(T value)
{
    if (value == this->root){
        return value;
    }
    else if (value < this->root)
    {
        if (left == nullptr){}  
        else
        {
            return left->search(value);
        }
    }
    else if (value > this->root)
    {
        if (right == nullptr){}
        else
        {
            return right->search(value);
        }
    }
}

Ошибка двоичного файла C2678 <<: не найден оператор, который принимает левый операнд типа 'T' (или нет допустимого преобразования) </p>

Ошибка двоичного файла C2678 '== ': не найден оператор, который принимает левый операнд типа' T '(или нет приемлемого преобразования)

Ошибка C2678 бинарный'> ': не найден оператор, который принимает левый операндвведите 'T' (или нет приемлемого преобразования)

вот так

bool handler::operator>(const weatherData & w)
{
    bool temp = false;

    if (w > this->testD)
    {
        temp = true;
    }

    return temp;
}

Я пытаюсь получить карту, которая хранится внутри BST, у меня есть оператор перегрузки для этого конкретногообъект, но по какой-то причине приведенный выше код выбрасывает эти ошибки. Мне нужны операторы перегрузки в моем BST, если это тип T?любая помощь будет большой благодарностью.

...