AVL ट्री में IComparable के उपयोग

वोट
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));


    }


}

इस AVL पेड़ में मैं इसके लिए लेकिन प्रारंभ बिंदु में यह कोड की इस पंक्ति में compareTo में समर्थन नहीं करता छोड़ दिया और सही नोड और अन्य संतुलन methode तुलना करना चाहते हैं

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


    }

हालांकि मैं इंटरफेस का इस्तेमाल किया Icomaparable..anyone बताओ क्या यह उस में याद आ रही है ??????????????

06/12/2011 को 21:02
का स्रोत उपयोगकर्ता
अन्य भाषाओं में...                            


1 जवाब

वोट
0

आपका elementसंपत्ति प्रकार वस्तु का है, इसलिए इसे लागू नहीं करता है IComparable। इसके बजाय आप बाधा उस प्रकार के डेटा तत्व के साथ एक सामान्य वर्ग बना सकता है Tको लागू करना चाहिए 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);
    }
}
06/12/2011 को 21:09
का स्रोत उपयोगकर्ता

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