225. 用队列实现栈
✔做题思路 or 感想 :
-
用队列实现栈,仅仅用一个队列就可以了
-
push:直接push进队列就好
-
pop:把队首加到队尾,直到最开始的队尾变成了队首,这样就可以取最开始的队尾的值了。
-
peek:这个和pop的操作差不多,但是最后的操作有别。在最后取完队首(即是最开始的栈顶)后,要再把队首加到队尾去,还原成一开始的队列!不然最开始的队首就变成了栈顶了!
class MyStack { public: MyStack() { } queue<int>que; void push(int x) { que.push(x); } int pop() { int size = que.size() - 1; while (size--) { int front = que.front(); que.pop(); que.push(front); } int result = que.front(); que.pop(); return result; } int top() { int size = que.size() - 1; while (size--) { int front = que.front(); que.pop(); que.push(front); } int result = que.front(); //这里记得把队列还原回一开始的队列!!! que.push(result); que.pop(); return result; } bool empty() { return que.empty(); } }; /** * Your MyStack object will be instantiated and called as such: * MyStack* obj = new MyStack(); * obj->push(x); * int param_2 = obj->pop(); * int param_3 = obj->top(); * bool param_4 = obj->empty(); */
-
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端