数据结构与算法面试题包含min函数的栈

Posted zhiyong_will

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据结构与算法面试题包含min函数的栈相关的知识,希望对你有一定的参考价值。

题目来源“数据结构与算法面试题80道”。

问题分析:栈的特点是先进后出。要能够取出当前的最小值,需要用另一个栈保存当前的最小值,所以可采用“双栈”的结构,一个栈保存所有的值,另一个栈保存当前的最小值。

方法:

template <class Type> class min_stack
	private:
		stack<Type> s1;
		stack<Type> s2;
	public:
		min_stack()
		~min_stack()

		Type min()
			if (!s2.empty())
				return s2.top();
			
		

		void push(Type a)
			s1.push(a);
			if (s2.empty() || a <= s2.top())
				s2.push(a);
			
		

		Type pop()
			if (!s1.empty() && !s2.empty())// 非空
				if (s1.top() == s2.top())
					s2.pop();
				
				return s1.pop();
			
		
;

以上是关于数据结构与算法面试题包含min函数的栈的主要内容,如果未能解决你的问题,请参考以下文章

(程序员面试题精选(02))-设计包含min函数的栈

面试题30:包含 min 函数的栈

[剑指offer]面试题21:包含min函数的栈

剑指offer:面试题21包含min函数的栈

剑指offer-面试题30-包含min函数的栈-栈

剑指Offer - 面试题30:包含min函数的栈