包含min函数的栈

简介: 定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数。   public: /*入栈时,判断存放最小元素的栈是否为空, 入栈元素是否小于存放最小元素栈的栈顶元素*/ void push(int value) { stacktemp.

定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数。

 

public:
/*入栈时,判断存放最小元素的栈是否为空,
入栈元素是否小于存放最小元素栈的栈顶元素*/
    void push(int value) {
        stacktemp.push(value);
        if(minstack.empty() || value<minstack.top())
            minstack.push(value);
    }
/*出栈时,判断出栈元素和最小元素栈的栈顶元素是否值相同*/
    void pop() {
        if(stacktemp.empty())
            return;
        if(stacktemp.top()==minstack.top())
            minstack.pop();
        stacktemp.pop();
    }
    int top() {
        if(!stacktemp.empty())
            return stacktemp.top();
    }
    int min() {
        int minval;
        if(!minstack.empty())
            minval=minstack.top();
        return minval;
    }
};

 

目录
相关文章
|
1天前
|
存储 测试技术
【数据结构】操作受限的线性表,栈的具体实现
【数据结构】操作受限的线性表,栈的具体实现
12 5
|
1天前
|
存储 JavaScript 前端开发
JavaScript中的对象是数据结构,存储键值对,键为字符串,值可为任意类型,包括函数(作为方法)
【6月更文挑战第25天】JavaScript中的对象是数据结构,存储键值对,键为字符串,值可为任意类型,包括函数(作为方法)。
8 2
|
1天前
|
算法
【C/数据结构和算法】:栈和队列
【C/数据结构和算法】:栈和队列
6 1
|
22小时前
|
缓存 算法
【数据结构和算法】--- 栈
【数据结构和算法】--- 栈
4 0
|
4天前
|
缓存 调度
栈和队列的区别
栈和队列的区别
8 0
|
5天前
|
算法 Java 编译器
Java数据结构与算法:线性数据结构之栈
Java数据结构与算法:线性数据结构之栈
|
11天前
数据结构——栈和队列
数据结构——栈和队列
13 1
|
14天前
|
存储 算法 调度
数据结构与算法-栈篇
数据结构与算法-栈篇
14 3
|
5天前
|
C++
【洛谷 P1044】[NOIP2003 普及组] 栈 题解(递归+记忆化搜索)
**NOIP2003普及组栈问题**:给定操作数序列1到n,仅允许push(进栈)和pop(出栈)操作。目标是计算所有可能的输出序列总数。输入包含一个整数n(1≤n≤18)。示例输入3,输出5。当队列空时返回1,栈空则只能入栈,栈非空时可入栈或出栈。AC C++代码利用记忆化搜索求解。
9 1
|
8天前
|
算法
$停车场管理系统 栈与队列
$停车场管理系统 栈与队列
8 1