Пример #1
0
        /// <summary>
        /// Push element to the last right side ('till BTermainal<TElement> element)
        /// </summary>
        public void BranchRight(TElement element)
        {
            BPrimitive <TElement> parentRight = this;
            BPrimitive <TElement> nextRight   = new BNode <TElement>(element);

            if (parentRight.RightLink is BTerminal <TElement> )
            {
                parentRight.PushRight(nextRight);
            }
            else
            {
                while (!(parentRight.LeftLink is BTerminal <TElement>))
                {
                    parentRight = parentRight.RightLink;
                }

                nextRight = new BNode <TElement>(element);
                parentRight.PushLeft(nextRight);
            }

            BranchNodeLogging?.Invoke("Element brached right");
        }
Пример #2
0
 public override void PushRight(BPrimitive <TElement> primitive)
 {
     base.PushRight(primitive);
     BranchNodeLogging?.Invoke("Element brached right");
 }