数据结构与算法(c#实现)系列—树(三)
heavenkiller(原创)
//overwrite object.equals() — reference type realization
public override bool equals(object _obj)
{
if( _obj==null )
return false;//因为this不可能为null
if( ! (this.gettype()==_obj.gettype()) )
return false;//类型不相等也不相等
tree tmpobj=(tree)_obj;
//比较引用成员
if( !object.equals(this.key,tmpobj.key) )
return false;
//比较值类型成员
if( !this.degree.equals(tmpobj.degree) )
return false;
//if( !this.height.equals(tmpobj.height) )
//return false;
return true;
}
//在此重载 ==,!= 后, 在以后继承的类中不必实现了
public static bool operator==(tree _treea,tree _treeb)
{
return object.equals(_treea,_treeb);
}
public static bool operator!=(tree _treea,tree _treeb)
{
return !(_treea==_treeb);
}
#region icomparable 成员
public virtual int compareto(object obj)
{
// todo: 添加 tree.compareto 实现
return 0;
}
#endregion
}
}