public Item Next()
            {
                ItorCurrentNode = ItorCurrentNode.Next;
                Item nextItem = ItorCurrentNode.ItemInstance;

                return(nextItem);
            }
        public BagByNode <Item> Add(Item item)
        {
            SingleSideNode <Item> oldFirst = First;

            First = new SingleSideNode <Item>(item, oldFirst);
            return(this);
        }
        public Item Pop()
        {
            Item item = Head.ItemInstance;

            Head = Head.Next;
            _Count--;
            return(item);
        }
        public StackByNode <Item> Push(Item item)
        {
            SingleSideNode <Item> oldHead = Head;

            Head = new SingleSideNode <Item>(item, oldHead);
            _Count++;
            return(this);
        }
Example #5
0
        public Item Dequeue()
        {
            Item item = First.ItemInstance;

            First = First.Next;
            if (IsEmpty())
            {
                Last = null;
            }
            Count--;
            return(item);
        }
Example #6
0
        public QueueByNode <Item> Enqueue(Item item)
        {
            SingleSideNode <Item> oldLast = Last;

            Last = new SingleSideNode <Item>(item, null);
            if (IsEmpty())
            {
                First = Last;
            }
            else
            {
                oldLast.Next = Last;
            }
            Count++;
            return(this);
        }
 public SingleSideNodeIterator(SingleSideNode <Item> head)
 {
     ItorCurrentNode = head;
 }
 public SingleSideNode(Item item, SingleSideNode <Item> next)
 {
     ItemInstance = item;
     Next         = next;
 }