力扣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;
};
相关推荐
Tisfy1 小时前
LeetCode 1295.统计位数为偶数的数字:模拟
算法·leetcode·题解
禺垣1 小时前
GBDT算法原理及Python实现
人工智能·python·算法·机器学习·数据挖掘·集成学习
xyd陈宇阳2 小时前
嵌入式开发高频面试题全解析:从基础编程到内存操作核心知识点实战
c语言·数据结构·stm32·算法·面试
__lost4 小时前
MATLAB退火算法和遗传算法解决旅行商问题
开发语言·算法·matlab·遗传算法·退火算法
恶霸不委屈4 小时前
MATLAB函数调用全解析:从入门到精通
开发语言·算法·matlab·匿名函数·函数句柄
dog2504 小时前
BBR 的 RTT 公平性问题求解
人工智能·算法·机器学习
不搞学术柒柒5 小时前
《分词算法大揭秘:BPE、BBPE、WordPiece、ULM常见方法介绍》
算法
安装虚拟机的老师傅6 小时前
当插入排序遇上“凌波微步“——希尔排序的奇幻漂流
数据结构·算法·排序算法
大魔王(已黑化)6 小时前
LeetCode —— 572. 另一棵树的子树
c语言·数据结构·c++·算法·leetcode·职场和发展
机器学习之心HML6 小时前
JCRQ1河马算法+消融实验!HO-CNN-LSTM-Attention系列四模型多变量时序预测,作者:机器学习之心
算法·机器学习·cnn