力扣225.用队列实现栈

原题链接:力扣225.用队列实现栈

思路:主要就是用队列模拟栈的操作

需要注意的点就是栈和队列数据结构的区别

栈是先进后出,队列是先进先出

也就代表如果队列要模拟栈,就要对队列实现移动元素位置的操作,这个要注意

全代码:

cpp 复制代码
class MyStack {
public:
    MyStack() {

    }

    void push(int x) {// 将元素 x 压入栈顶。用单队列实现
    
        queuea.push(x);//将x先压入队列尾
        int len = queuea.size()-1;//获取队列总长度,但是减去1,因为移位置不需要移动刚添加进来的x
        while (len--) {//将队列头的元素逐步添加到队列尾,就成了旧元素不变,的以新元素x开头的队列
            queuea.push(queuea.front());
            queuea.pop();
        }
    }

    int pop() {//移除并返回栈顶元素
        if (!queuea.empty()) {
            //得到队列最先出的一个元素
            int a = queuea.front();
            //弹出
            queuea.pop();
            //返回弹出的元素
            return a;
        }
        else {//为空返回NULL
            return NULL;
        }
    }
    int top() {//返回栈顶元素。
        int a = queuea.front();
        return a;
    }
    bool empty() {//判断是否为空,空返回true,不为空返回false
        return queuea.empty();
    }
private:
    queue<int> queuea;
};
相关推荐
寂静山林13 分钟前
UVa 1366 Martian Mining
算法
陌路201 小时前
S12 简单排序算法--冒泡 选择 直接插入 希尔排序
数据结构·算法·排序算法
雾岛—听风1 小时前
P1012 [NOIP 1998 提高组] 拼数
算法
papership2 小时前
【入门级-算法-5、数值处理算法:高精度的乘法】
数据结构·算法
earthzhang20212 小时前
【1039】判断数正负
开发语言·数据结构·c++·算法·青少年编程
谈笑也风生2 小时前
只出现一次的数字 II(一)
数据结构·算法·leetcode
蕓晨2 小时前
auto 自动类型推导以及注意事项
开发语言·c++·算法
mjhcsp3 小时前
C++ 递推与递归:两种算法思想的深度解析与实战
开发语言·c++·算法
_OP_CHEN3 小时前
算法基础篇:(三)基础算法之枚举:暴力美学的艺术,从穷举到高效优化
c++·算法·枚举·算法竞赛·acm竞赛·二进制枚举·普通枚举
m0_748248023 小时前
《详解 C++ Date 类的设计与实现:从运算符重载到功能测试》
java·开发语言·c++·算法