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;
    }
Example #3
0
    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;
        }
    }