力扣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;
};
相关推荐
不去幼儿园38 分钟前
【RL Base】强化学习核心算法:深度Q网络(DQN)算法
人工智能·python·算法·机器学习·强化学习
Good_tea_h42 分钟前
Java中怎么打印数组?
java·python·算法
mazo_command43 分钟前
【代码随想录|贪心算法02】
算法·贪心算法
糕冷小美n4 小时前
jeecgbootvue2重新整理数组数据或者添加合并数组并遍历背景图片或者背景颜色
数据结构·算法
CV万花筒4 小时前
点云欧式聚类,条件欧式聚类算法原理及推导
算法·数据挖掘·聚类
ZZZ_O^O5 小时前
【贪心算法-第三弹——Leetcode-179.最大数】
c++·学习·算法·leetcode·贪心算法
Matlab程序猿小助手5 小时前
【MATLAB源码-第228期】基于matlab的鼠群优化算法(RSO)无人机三维路径规划,输出做短路径图和适应度曲线.
开发语言·算法·matlab·机器人·无人机
z千鑫6 小时前
【C/C++】深入解析 Stack 与 Queue 数据结构(详解):实现原理、应用场景与性能优化
c语言·开发语言·数据结构·c++·深度学习·算法·排序算法
Y编程小白6 小时前
Leecode经典题2--移除元素
数据结构·算法·leetcode
Wils0nEdwards6 小时前
Leetcode 颠倒二进制位
算法·leetcode·职场和发展