public T Dequeue() { //if (IsEmpty()) // return default; if (oldestFirst.IsEmpty()) { SwapStacks(); } return(oldestFirst.Pop()); }
private void SwapStacks(MyStack <T> sending, MyStack <T> receiving) { while (!sending.IsEmpty()) { var nodeToSwap = sending.Pop(); receiving.Push(nodeToSwap); } }
public bool IsEmpty() { return(newestFirst.IsEmpty() && oldestFirst.IsEmpty()); }