Data structures and algorithms (C # implementation) series --- generalized tree (II)
Heavenkiller (original)
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 ()
{
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
}
// Overwrite object. Equals () --- reference type Realization
Public override bool equals (object _ OBJ)
{
If (! Base. Equals (_ OBJ ))
Return false; // if the base class is not equal, the base class is not equal.
// Some entries in the base class can be removed from this
// The base class has been identified as the generaltree type, so the transformation will not fail
Generaltree tmptree = (generaltree) _ OBJ;
// Compare referenced members
If (! Object. Equals (this. treelist, tmptree. treelist ))
Return false;
// Compare value type members
Return true;
}
}
}