我想在C#中使用泛型实现二叉搜索树,但我不知道如何实现IComparable
接口。我不能比较通用类型T,所以我不知道如何实现CompareTo()
函数。C#泛型类型和IComparable,无法比较类型T
下面是代码:
public class BSTNode<T> : IComparable<BSTNode<T>>
{
public T Data { get; set; }
public BSTNode<T> LeftChild { get; private set; }
public BSTNode<T> RightChild { get; private set; }
...
}
当试图实现public void Insert(BSTNode<T> node)
,我需要比较Data
财产,但我得到一个错误说我不能比较泛型类型T.
我试图执行IComparable接口,但在CompareTo函数中,它与T错误无法相比。任何想法如何解决这个问题?
你应该确保'T'也实现'IComparable'。 – Tdorno
我看到了这个问题,但我得到一个错误,说类型T没有CompareTo成员函数。 – Naz
'public class BSTNode:IComparable > where T:IComparable' –
Tdorno