gebruik van IComparable in AVL Tree

stemmen
0
 public class Node : IComparable

{
    public object element;
    public Node left;
    public Node right;
    public int height;


    public Node(object data, Node L, Node R)
    {

        element = data;
        left = L;
        right = R;
        height = 0;


    }
    public Node(object data)
    {

        element = data;
        left = null;
        right = null;
        height = 0;


    }

    public int CompareTo(object obj)
    {
        return (this.element.CompareTo((Node)obj.element));


    }


}

in deze AVL boom ik wil vergelijken links en rechts knooppunt en andere balans methode voor, maar in beginpunt het geen ondersteuning biedt in compareTo in deze lijn van code

 public int CompareTo(object obj)
    {
        return (this.element.CompareTo((Node)obj.element));


    }

hoewel ik gebruikte interface-Icomaparable..anyone vertellen wat ontbreekt in het dit ??????????????

De vraag is gesteld op 06/12/2011 om 21:02
bron van user
In andere talen...                            


1 antwoorden

stemmen
0

Uw elementeigendom is van het type object, zodat het niet ten uitvoer te leggen IComparable. In plaats daarvan kun je een algemene klasse met de beperking dat het data-element van het type te maken Tmoeten uitvoeren IComparable<T>:

public class Node<T> : IComparable<Node<T>> where T: IComparable<T>
{
    public T element;
    public Node<T> left;
    public Node<T> right;
    public int height;


    public Node(T data, Node<T> L, Node<T> R)
    {

        element = data;
        left = L;
        right = R;
        height = 0;


    }
    public Node(T data)
    {

        element = data;
        left = null;
        right = null;
        height = 0;


    }

    public int CompareTo(Node<T> other)
    {
        return element.CompareTo(other.element);
    }
}
antwoordde op 06/12/2011 om 21:09
bron van user

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more