力扣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;
};
相关推荐
知识浅谈3 小时前
DeepSeek V4 和 GPT-5.5 在同一天发布了??我也很懵,但对比完我悟了
算法
DeepModel4 小时前
通俗易懂讲透 Q-Learning:从零学会强化学习核心算法
人工智能·学习·算法·机器学习
田梓燊4 小时前
力扣:19.删除链表的倒数第 N 个结点
算法·leetcode·链表
简简单单做算法5 小时前
基于GA遗传优化双BP神经网络的时间序列预测算法matlab仿真
神经网络·算法·matlab·时间序列预测·双bp神经网络
guygg886 小时前
利用遗传算法解决列车优化运行问题的MATLAB实现
开发语言·算法·matlab
武藤一雄6 小时前
19个核心算法(C#版)
数据结构·windows·算法·c#·排序算法·.net·.netcore
sali-tec6 小时前
C# 基于OpenCv的视觉工作流-章52-交点查找
图像处理·人工智能·opencv·算法·计算机视觉
yu85939587 小时前
MATLAB连续线性化模型预测控制(SL-MPC)
算法·机器学习·matlab
ytttr8737 小时前
基于ACADO工具包的自主车道跟踪与避障MPC控制
算法