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); }
public Item Dequeue() { Item item = First.ItemInstance; First = First.Next; if (IsEmpty()) { Last = null; } Count--; return(item); }
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; }