public BinomialHeapNode(T value, BinomialHeapNode <T> parent) { Value = value; Parent = parent; Sibling = Child = null; order = 0; }
public BinomialHeapNode <T> Find(T toFind) { BinomialHeapNode <T> found = null; if (Value.Equals(toFind)) { return(this); } else if (Sibling != null) { found = Sibling.Find(toFind); } if (Value.CompareTo(toFind) < 0 && found == null) { if (Child != null) { found = Child.Find(toFind); } } return(found); }
public void AddChild(BinomialHeapNode <T> child) { if (child != null) { child.Sibling = null; if (Child != null) { BinomialHeapNode <T> temp = Child; while (temp.Sibling != null) { temp = temp.Sibling; } temp.Sibling = child; } else { Child = child; } ++order; child.Parent = this; } }