Maintain a variable min which will contain the minimum element.

push(n): if(n < min)

{

stack.push( n - (min - n) );

min = n

}

else

{

stack.push(n)

}

pop(): retVal = stack.pop();

if( retVal < min)

{

temp = min;

min = min + ( min - retVal);

retVal = temp

}

return retVal;

findMin(): return min;

push(n): if(n < min)

{

stack.push( n - (min - n) );

min = n

}

else

{

stack.push(n)

}

pop(): retVal = stack.pop();

if( retVal < min)

{

temp = min;

min = min + ( min - retVal);

retVal = temp

}

return retVal;

findMin(): return min;