自学内容网 自学内容网

C++STL的Stack的使用:STL栈和队列的使用介绍、leecode---最小栈、nowcoder---栈的压入、弹出序列等的介绍


前言

C++STL的Stack的使用:STL栈和队列的使用介绍、leecode—最小栈、nowcoder—栈的压入、弹出序列等的介绍


一、STL栈和队列的使用


#include <iostream>
#include <stack>
#include <queue>
using namespace std;

void test_stack_queue()
{
stack<int> st;

st.push(1);
st.push(2);
st.push(3);
st.push(4);
st.push(5);

while (!st.empty())
{
cout << st.top() << " ";
st.pop();
}
cout << endl;


queue<int> q;

q.push(1);
q.push(2);
q.push(3);
q.push(4);
q.push(5);

while (!q.empty())
{
cout << q.front() << " ";
q.pop();
}
cout << endl;}

int main()
{

test_stack_queue();

return 0;
}

在这里插入图片描述

二、leetcode—最小栈

最小栈链接
在这里插入图片描述

class MinStack {
public:
    MinStack() {

    }
    
    void push(int val) {
        _st.push(val);
        if(_minst.empty() || val <= _minst.top())
        {
            _minst.push(val);
        }
    }
    
    void pop() {
        if(_minst.top() == _st.top())
        {
            _minst.pop();
        }
        _st.pop();
    }
    
    int top() {
        return _st.top();
    }
    
    int getMin() {
        return _minst.top();
    }
private:
    stack<int> _st;
    stack<int> _minst;
};

在这里插入图片描述

三、nowcoder—栈的压入、弹出序列

栈的压入、弹出序列链接
在这里插入图片描述

class Solution {
public:
    bool IsPopOrder(vector<int>& pushV, vector<int>& popV) {
        stack<int> st;
        size_t pushi = 0, popi = 0;

        while(pushi < pushV.size())
        {
            st.push(pushV[pushi++]);

            // 不匹配
            if(popV[popi] != st.top())
            {
                continue;
            }
            else 
            {
                // 匹配
                while(!st.empty() && st.top() == popV[popi])
                {
                    st.pop();
                    ++popi;
                }
            }
        }

        return st.empty();

    }
};

在这里插入图片描述


总结

C++STL的Stack的使用:STL栈和队列的使用介绍、leecode—最小栈、nowcoder—栈的压入、弹出序列等的介绍


原文地址:https://blog.csdn.net/Farewell_me/article/details/142393058

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!