包含min函数的栈

题目:定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的函数。在该栈中,调用min,push,pop的时间复杂度都为O(1)。

创新互联公司服务项目包括恩阳网站建设、恩阳网站制作、恩阳网页制作以及恩阳网络营销策划等。多年来,我们专注于互联网行业,利用自身积累的技术优势、行业经验、深度合作伙伴关系等,向广大中小型企业、政府机构等提供互联网行业的解决方案,恩阳网站推广取得了明显的社会效益与经济效益。目前,我们服务的客户以成都为中心已经辐射到恩阳省份的部分城市,未来相信会继续扩大服务区域并继续获得客户的支持与信任!

#include
#include
using namespace std;
template 
class Stack
{
public:
	void push(T  data)
	{
		if(_array.size()==0)
		{
			_array.push_back(data);
			_array1.push_back(0);
		}
		else
		{
			int index=_array1.size()-1;
			if(data>=_array[index])
			{
				_array.push_back(data);
				_array1.push_back(_array1[index]);
			}
			else
			{
				_array.push_back(data);
				_array1.push_back(index+1);
			}
		}
	}
	void pop()
	{
		int index=_array.size()-1;
		_array[index]=NULL;
		_array1[index]=NULL;
	}
	T Min()
	{
		int end=_array1.size()-1;
		int index=_array1[end];
		return _array[index];
	}
private:
	vector _array;
	vector _array1;
};
void test()
{
	Stack s1;
	s1.push(3);
	s1.push(7);
	s1.push(4);
	s1.push(1);
	s1.push(8);
	s1.push(0);
	cout<

结果:

包含min函数的栈


网页名称:包含min函数的栈
文章转载:http://pwwzsj.com/article/gsiogh.html