从时间复杂度和空间复杂度的两个方面同时分析一下用栈实现队列和用队列实现栈
答案:1 悬赏:30 手机版
解决时间 2021-11-22 13:15
- 提问者网友:眉目添风霜
- 2021-11-21 12:36
从时间复杂度和空间复杂度的两个方面同时分析一下用栈实现队列和用队列实现栈
最佳答案
- 五星知识达人网友:一把行者刀
- 2021-11-21 13:15
举例说明,假设我们进行以下4步:
push 1, 2
pop //此时应pop 1
push 3
pop //此时应pop 2
在运行第一个pop时,把A中的1,2全push到B中去,然后再pop得到1,此时B中还剩一个2
下一步push 3,是push到A中
最后一步pop,把B中的2给pop出去
关键点:
(2)如果不为空,则将栈A中所有元素依次pop出并push到栈B;
这里隐含了一点,如果为空,就直接从B中pop,不对A进行任何操作。很显然,需要if..else语句。
弹栈和一般的出栈不同,需要多一部检测B是否为空。
如果B不为空,则直接从B出栈,这时与一般的出栈相同。
如果B为空,则需要把A中所有的元素出栈并压栈到B中去,然后再对B进行一般的出栈操作。
push 1, 2
pop //此时应pop 1
push 3
pop //此时应pop 2
在运行第一个pop时,把A中的1,2全push到B中去,然后再pop得到1,此时B中还剩一个2
下一步push 3,是push到A中
最后一步pop,把B中的2给pop出去
关键点:
(2)如果不为空,则将栈A中所有元素依次pop出并push到栈B;
这里隐含了一点,如果为空,就直接从B中pop,不对A进行任何操作。很显然,需要if..else语句。
弹栈和一般的出栈不同,需要多一部检测B是否为空。
如果B不为空,则直接从B出栈,这时与一般的出栈相同。
如果B为空,则需要把A中所有的元素出栈并压栈到B中去,然后再对B进行一般的出栈操作。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯