public void Push(T item) { while (_firstStack.Count > 0 && IsLessThan(_firstStack.Peek(), item)) { _secondStack.Push(_firstStack.Pop()); } _firstStack.Push(item); while (_secondStack.Count > 0) { _firstStack.Push(_secondStack.Pop()); } }
public void Should_Peek_Throw_If_Stack_Is_Empty() { //arrange var stack = new MyLinkedListStack <int>(); //act Action act = () => stack.Peek(); //assert act.ShouldThrow <InvalidOperationException>(); }
public T Peek() { if (Count == 0) { throw new InvalidOperationException(); } if (_secondStack.Count == 0) { RearangeStacks(); } return(_secondStack.Peek()); }
public void Should_Peek() { //arrange var stack = new MyLinkedListStack <int>(); stack.Push(1); //act var result = stack.Peek(); //assert stack.Count.ShouldBeEquivalentTo(1); result.ShouldBeEquivalentTo(1); }