码迷,mamicode.com
首页 > 其他好文 > 详细

包涵min函数的栈

时间:2017-12-23 20:15:24      阅读:112      评论:0      收藏:0      [点我收藏+]

标签:log   动态   turn   类型   post   private   desc   pop   void   

题目描述

  定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数
  思路:用一个辅助栈动态维护最小值
 1 class Solution {
 2 public:
 3     void push(int value) {
 4         _stack1.push(value);
 5         if(_stack2.size()==0)_stack2.push(value);
 6         else{
 7             if(value<=_stack2.top())_stack2.push(value);//如果入栈的元素比当前最小元素还小,则也入到辅助栈
 8         }
 9     }
10     void pop() {
11         if(_stack1.top()==_stack2.top())//如果出栈的是当前最小元素,则辅助栈也出栈
12         {
13             _stack1.pop();
14             _stack2.pop();
15         }else{
16             _stack1.pop();
17         }
18     }
19     int top() {
20         return _stack1.top();
21     }
22     int min() {
23         return _stack2.top();
24     }
25 private:
26     stack<int> _stack1;
27     stack<int> _stack2;//辅助栈
28 };

 

包涵min函数的栈

标签:log   动态   turn   类型   post   private   desc   pop   void   

原文地址:http://www.cnblogs.com/jeysin/p/8094053.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!