数据结构与算法(C#实现)系列---广义树(二) Heavenkiller(原创) public override object Key{get{return this.key;}} public override uint Degree{get{return this.degree;}} //public override uint Height{get{return this.height;}} public override bool IsEmpty()// property takes the place of IsEmpty() { } //overwrite Object.Equals() --- reference type 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; } } }
return false;//generaltree won't be empty for ever
}
public override 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