实现一个栈stack,push出栈,pop入栈,min返回最小值
来源:互联网 发布:人力资源规划 数据分析 编辑:程序博客网 时间:2024/06/05 06:53
如果一次可以将同一个数据进行两次压栈
一.要压入的数据比栈顶的数据大
(1).将原来栈顶的元素保存起来再Pop掉
(2).将新元素压栈,再将原来栈顶的元素压栈
二.要压入的数据比栈顶的数据小
直接将该数据两次压栈
如果每次都如此压栈的话到最后栈顶的元素一定是所有数据中最小的元素,而且也不会改变入栈的顺序
//两个元素为一组,栈顶为最小的元素
templateclass MinStack
{
public:
void Push(const T& d)
{
if(_ptr.empty() || d <= _ptr.top())//要入栈的元素小于栈顶元素
{
_ptr.push(d);
_ptr.push(d);
}
else
{
T mindata=_ptr.top();
_ptr.push(d);
_ptr.push(mindata);
}
}
void Pop()
{
assert(!_ptr.empty());
_ptr.pop();
_ptr.pop();
}
T& MinData(){return _ptr.top();
}
T& top(){assert(!_ptr.empty());
T mindata=_ptr.top();
_ptr.pop();
T &ret=_ptr.top();
_ptr.push(mindata);
return ret;
}
protected:stack _ptr;
};
阅读全文
0 0
- 实现一个栈stack,push出栈,pop入栈,min返回最小值
- 【栈队列】实现一个栈Stack,要求实现Push(出栈)、Pop(入栈)、Min(返回最小值的操作)的时间复杂度为O(1)
- 栈--实现一个栈Stack,要求实现Push(出栈)、Pop(入栈)、Min(返回最小值的操作)的时间复杂度为O(1)
- 实现一个栈Stack,要求实现Push(出栈)、Pop(入栈)、Min(返回最小值的操作)的时间复杂度为O(1)
- 实现一个栈Stack,要求实现Push(出栈)、Pop(入栈)、Min(返回最小值的操作)的时间复杂度为O(1)
- 实现一个栈Stack,要求实现Push(出栈)、Pop(入栈)、Min(返回最小值的操作)的时间复杂度为O(1)
- 实现一个栈Stack,要求实现Push(出栈)、Pop(入栈)、Min(返回最小值的操作)的时间复杂度为O(1)
- 实现一个栈Stack,要求实现Push(出栈)、Pop(入栈)、Min(返回最小值的操作)的时间复杂度为O(1)
- 实现一个栈Stack,要求实现Push(入栈)、Pop(出栈)、Min(返回最小值的操作)的时间复杂度为O(1)
- 实现一个栈Stack,要求实现Push(入栈)、Pop(出栈)、Min(返回最小值的操作)的时间复杂度为O(1)
- 实现一个栈Stack,要求实现Push(出栈)、Pop(入栈)、 Min(返回最小值的操作)的时间复杂度为O(1)
- 模拟实现一个Stack 要求实现Push(出栈)、Pop(入栈)、Min(返回最小值的操作)的时间复杂度为O(1)
- 实现一个栈Stack,要求实现Push(出栈)、Pop(入栈)、Min(返回最小值的操作)的时间复杂度为O(1) /查找一个字符串中第一个只出现两次的字符
- 【每日一题】实现一个栈Stack,要求实现Push(出栈)、Pop(入栈)、 Min(返回最小值的操作)的时间复杂度为O(1)
- 【每日一题】实现一个栈Stack,要求实现Push(出栈)、Pop(入栈)、Min(返回最小值的操作)的时间复杂度为O(1)
- 【数据结构】实现一个栈,要求实现Push(出栈)、Pop(入栈)、Min(返回最小值的操作)的时间复杂度为O(1)
- 实现一个栈,要求实现Push(入栈)、Pop(出栈)、Min(返回最小值的操作)的时间复杂度为O(1)
- ~实现一个栈,要求实现Push(出栈)、Pop(入栈)、Min(返回最小值的操作)的时间复杂度为O(1)~
- spring的@Transactional注解详细用法
- centos7 redis安装
- date转String 并且格式化
- 使用C和C++标准函数忽略大小写比较字符串
- Android--android:scaleType属性-->ImageView(图片)适应屏幕的处理办法
- 实现一个栈stack,push出栈,pop入栈,min返回最小值
- CMAKE 常用命令整理
- 【工作笔记】枚举作为常量类
- mybatis if标签判断int值
- 基本类型和引用类型的本质区别
- Scala学习—面向对象编程之类
- Java反射机制
- 深度学习论文随记(三)GoogLeNet-2014年
- 同时重写属性的getter/setter方法和readonly的使用