包含min函数的栈
来源:互联网 发布:ubuntu创建新用户密码 编辑:程序博客网 时间:2024/06/07 23:46
定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的min函数。在该栈中调用min,pop,push函数的时间复杂度都是O(1)。
#include <stack>#include <assert.h>using namespace std;template <typename T> class StackWidthMin{public:StackWidthMin(){}~StackWidthMin(){}T& top();void pop();void push(const T& value);const T& min(void) const;bool empty() const;size_t size() const;private://数据栈,存放栈的所有元素stack<T> m_data;//辅助栈,存放栈的最小元素stack<T> m_min;}; template <typename T> bool StackWidthMin<T>::empty() const { return m_data.empty(); } template <typename T> size_t StackWidthMin<T>::size() const { return m_data.size(); } template <typename T> void StackWidthMin<T>::push(const T &value) { m_data.push(value); if (m_min==0||value<m_min.top()) { m_min.push(value); } else { m_min.push(m_min.top()); } } template <typename T> void StackWidthMin<T>::pop() { assert(m_data.size()>0&&m_min.size()>0); m_data.pop(); m_min.pop(); } template <typename T> T& StackWidthMin<T>::top() { m_data.top(); } template <typename T> const T& StackWidthMin<T>::min(void) { assert(m_data.size>0&&m_min.size()>0); return m_min.top(); }
0 0
- 包含min函数的栈
- 包含min函数的栈
- 包含min函数的栈
- 包含min函数的栈
- 包含min函数的栈
- 包含min函数的栈
- 包含min函数的栈
- 包含min函数的栈
- 包含min函数的栈
- 包含min 函数的栈
- 包含min函数的栈
- 包含min函数的栈
- 包含min函数的栈
- 包含min函数的栈
- 包含min函数的栈
- 包含min函数的栈
- 包含min函数的栈
- 包含min函数的栈
- Aerospike C客户端手册———事务级一致性保证
- 中国软件工程师分类
- Resin Web服务器文件解析漏洞
- FPGA图像开发重要网址
- shift+F10无法进入cmd
- 包含min函数的栈
- Activity刷新
- Aerospike C客户端手册———最佳实践—记录使用
- 74HC595供电与逻辑电平选择不当导致输出异常
- Aerospike C客户端手册———最佳实践—使用策略
- Ubuntu14.04集群分布式Hadoop-2.6.0系统安装
- Hibernate HelloWorld-04 Hibernate 的配置文件
- Aerospike C客户端手册———Benchmarks
- 第十一周项目一(2)存储班长信息的学生类