菜单 学习猿地 - LMONKEY

VIP

开通学习猿地VIP

尊享10项VIP特权 持续新增

知识通关挑战

打卡带练!告别无效练习

接私单赚外块

VIP优先接,累计金额超百万

学习猿地私房课免费学

大厂实战课仅对VIP开放

你的一对一导师

每月可免费咨询大牛30次

领取更多软件工程师实用特权

入驻
233
0

队列实现栈

原创
05/13 14:22
阅读数 25061
#include <iostream>
#include <queue>
using namespace std;

class myStack
{
public:
    void push(int a);

    int pop();

    int top();

    bool empty();

private:
    queue<int> _data;
};

void myStack::push(int a)
{
    queue<int> temp;
    temp.push(a);
    while(!_data.empty())
    {
        temp.push(_data.front());
        _data.pop();
    }

    while(!temp.empty())
    {
        _data.push(temp.front());
        temp.pop();
    }
}

int myStack::pop()
{
    int i = _data.front();
    _data.pop();
    return i;
}

int myStack::top()
{
    return _data.front();
}

bool myStack::empty()
{
    return _data.empty();
}

int main()
{
    myStack __myStack;


    for(int i = 0; i < 5; ++i)
    {
        __myStack.push(i);
        cout << __myStack.top() << endl;
    }
    return 0;
}

  

发表评论

0/200
233 点赞
0 评论
收藏