public void Push(T data) { valueStack.Push(data); //critical to check empty else any garbage can come if (minStack.IsEmpty() || minStack.Peek().CompareTo(data) >= 0) // to handle duplicate push when equal { minStack.Push(data); } if (maxStack.IsEmpty() || maxStack.Peek().CompareTo(data) <= 0) { maxStack.Push(data); } }
static void Main(string[] args) { // FILO - first in, last out var stack = new MyStack(); stack.Push(10); stack.Push(20); stack.Push(30); var p = stack.Peek(); var a = stack.Pop(); var reversed = StringReverser("ruan"); var balanced = IsBalanced("(1 + 2)>"); }
public T Peek() { return(valueStack.Peek()); }