Вот код для двоичного дерева поиска. Я еще не реализовал функцию поиска, потому что у меня уже были ошибки в строках: 1, 2 и 3, которые я указал в коде. Ошибка говорит:Java Generic Binary Search Tree не может сравнивать типы T
Оператор < не определен для типа аргумента (ов) Т, Т.
Таким образом, я предполагаю, что компилятор не знает, как сравнить эти типы или что-то подобное , Теперь я немного поработал над исследованием, и я узнал, что он имеет какое-то отношение к методу Comperable и compareTo, но как самому новичку java мне не удалось исправить код. Любые идеи относительно того, как исправить это?
import java.util.*;
import java.io.*;
public class Tree<T>
{ private Node<T> root = null;
public boolean insert(T element)
{ if (isEmpty())
{ root = new Node<T>(element);
return true; }// empty tree, Node could be inserted, return true
Node<T> current = root; // start at root
Node<T> parent; // the current Node's parent
do
{parent = current;
if (element < current.element) // 1
current = current.left; // go to left
else if (element > current.element) //2
current = current.right; // go to right
else
return false; } // duplicates are NOT allowed, element could not be inserted -> return false
while (current != null);
Node<T> node = new Node<T>(element);
if (element < current.element) // 3
parent.left = node;
else
parent.right = node;
return true; } // node successfully inserted
public boolean isEmpty() { return root == null; }
private static class Node<T> // static member class
{ Node<T> left = null;
Node<T> right = null;
final T element;
Node(T element) { this.element = element; } }
}
Вы должны ограничить 'T' реализовать' Comparable': 'Tree>'. Затем используйте 'element.compareTo (current.element) <0'. –
@ Энди Тернер нападает на человека, который его исправил! –