数据结构与算法 - C#实现广义树(2)2010-05-08
publicoverride object Key{get{return this.key;}}
publicoverride uint Degree{get{return this.degree;}}
//publicoverride uint Height{get{return this.height;}}
publicoverride bool IsEmpty()// property takes the place of IsEmpty()
{
return false;//generaltree won"t be empty for ever
}
publicoverride bool IsLeaf()
{
return this.degree==0;//if this tree"s degree is zero, it means the tree has no subtrees, so it is leaf certainly
}
//overwrite Object.Equals() ---referencetype realization
public override bool Equals(object _obj)
{
if( !base.Equals(_obj) )
return false;//基类比较不相等,则不相等
//基类中的一些条目在此可免去
//在基类中已判定其为GeneralTree类型,故转型不会失败
GeneralTree tmpTree=(GeneralTree)_obj;
//比较引用成员
if( !Object.Equals(this.treeList,tmpTree.treeList) )
return false;
//比较值类型成员
return true;
}
}
}