zoukankan      html  css  js  c++  java
  • c++实现栈的push、pop、min

    c++实现栈的push、pop、min

    在c++中用一个数组和一个变量(记录栈顶位置)来实现栈结构

    //c++实现栈的push、pop、min
    //用两个栈实现
    //记录每一次插入的min状态 
    #include<iostream> 
    #include<stack>
    #include<algorithm>
    using namespace std;
    class Stack
    {
    	public:
    		void push(int value)
    		{
    			data.push(value);
    			if(min.empty()||value<min.top()) //小数栈为空或者要插入的元素是最小值,插入小数栈栈顶
    			{
    				min.push(value);
    			}
    			else
    			{
    				min.push(min.top());
    			} 
    		}
    		void pop()
    		{
    			if(!data.empty()&&!min.empty())
    			{
    				data.pop();
    				
    				min.pop(); //min里保存着每一个状态的min 
    			}
    		}
    		int getmin()
    		{
    			if(min.empty())
    			{
    				return 0;
    			}
    			else
    			{
    				return min.top();
    			}
    		}
    		
    	private:
    		stack<int> data;
    		stack<int> min;     //装每一个状态的min 
    };
    int main()
    {
    	Stack s;
    	s.push(1);
    	s.push(2);
    	s.push(3);
    	s.push(4);
    	s.push(5);
    	s.push(6);
    	s.push(0);
    	int ans = s.getmin();
    	cout<<ans<<endl;
    	return 0;
    }
    

  • 相关阅读:
    软件评价——360安全卫士
    对于软件工程课程的疑问
    附加作业
    个人最终总结
    结对编程 电梯调度程序
    读程序作业
    VS2015 单元测试
    VS2015 的安装过程
    四则运算程序
    对于软件的点评
  • 原文地址:https://www.cnblogs.com/serendipity-my/p/12828828.html
Copyright © 2011-2022 走看看