数据结构与算法 (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
}
}