一、
因为有太多遗忘的东西了,所以做题速度会很慢
现在理解题目,把题目理解好了,然后去看题解,看完题解,在去搜索相关知识点进行补充。
二、题目
三、理解
栈:先进后出;队列:先进先出
要满足题目的要求,我们要把栈底输出出来,我们可以把栈倒着输出,就可以满足队列的先进先出。
所以我们需要两个栈来,第一个栈是进栈,第二个栈进行队列头部删除功能。
原理解释清楚了,我们还需要理解一些细节
1.判断第一个栈是否为空栈,空栈就可以直接输出-1
2.判断第二个栈是否为空栈,不是空栈,我们要继续输出第二个栈里的值
3.利用wihle的循环把第一个栈里的值给到第二个栈里面
4.知道两个栈都为空,代码结束
四、代码分析
class CQueue { stack<int> s1,s2; public: CQueue() { } void appendTail(int value) { s1.push(value); } int deleteHead() { if(!s2.empty()) { int a=s2.top(); s2.pop(); return a; } if(s1.empty()) return -1; while(!s1.empty()) { s2.push(s1.top()); s1.pop(); } int b =s2.top(); s2.pop(); return b; } }; /** * Your CQueue object will be instantiated and called as such: * CQueue* obj = new CQueue(); * obj->appendTail(value); * int param_2 = obj->deleteHead(); */
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律