public OfferTreeNode Add(Offer newOffer) { if (Price > newOffer.Price) { if (left == null) { left = new OfferTreeNode(this, newOffer); return(left); } return(left.Add(newOffer)); } else if (Price < newOffer.Price) { if (right == null) { right = new OfferTreeNode(this, newOffer); return(right); } return(right.Add(newOffer)); } else { offers.Add(newOffer); return(this); } }
public OfferTreeNode(OfferTreeNode parent, Offer offer) { offers.Add(offer); Price = offer.Price; this.parent = parent; }
public void Add(Offer offer) { if (root == null) { root = new OfferTreeNode(null, offer); Min = root; Max = root; return; } OfferTreeNode newNode = root.Add(offer); if (Min.Price > newNode.Price) { Min = newNode; } if (Max.Price < newNode.Price) { Max = newNode; } }