(真的很忙,所以博客记录得非常粗糙,见谅)
文章链接:https://programmercarl.com/%E6%A0%88%E4%B8%8E%E9%98%9F%E5%88%97%E7%90%86%E8%AE%BA%E5%9F%BA%E7%A1%80.html
232.用栈实现队列:https://programmercarl.com/0232.%E7%94%A8%E6%A0%88%E5%AE%9E%E7%8E%B0%E9%98%9F%E5%88%97.html
225. 用队列实现栈:https://programmercarl.com/0225.%E7%94%A8%E9%98%9F%E5%88%97%E5%AE%9E%E7%8E%B0%E6%A0%88.html
自己看到题目的第一想法:几乎没有想法,通过栈实现队列还有一丢丢想法在我知道了要用两个栈来实现之后,但是通过队列实现栈我几乎是没有想法,因为我怎么也想不到第二个队列是用来备份的,我还限制在前一题的思维中
看完代码随想录之后的想法:
1. 用栈实现队列:有两个stacks,一个inStack一个outStack,在push的时候无所谓,可以直接push到instack里面,但是在pop的时候,是从outStack里面pop,如果outStack里有东西就直接pop,如果没东西,就把inStack里所有的elements全部pop到outStack里去,最后通过判断是否inStack和outStack都是empty来决定队列是否empty;
2. 用队列实现栈:有两个queue,其中一个是备份,当top和pop时,要把第一个队列中的除了最后一个元素以外的所有元素都放进第二个队列,然后pop第一个队列的最后一个元素,然后再把第二个队列的elements再加回第一个队列。
自己实现过程中遇到哪些困难:没有想到如何用备份去解决用队列如何实现栈
今日收获,记录一下自己的学习时长:对栈和队列都有了更清晰的认知,学习时长6小时