Example #1
0
        public int Pop()
        {
            int value = top.Value;

            top = top.Next;

            return(value);
        }
Example #2
0
        public void Push(int value)
        {
            var newNode = new StackWithMinNode()
            {
                Value = value,
            };


            if (top == null)
            {
                top = newNode;
                newNode.MinBeneathMe = newNode;
                return;
            }

            newNode.Next         = top;
            newNode.MinBeneathMe = value >= top.MinBeneathMe.Value ? top.MinBeneathMe : newNode;
            top = newNode;
        }