mirror of
https://github.com/CyC2018/Interview-Notebook.git
synced 2026-10-31 02:53:42 +00:00
Update 9. 用两个栈实现队列.md
补充出栈时元素转移条件的注意事项,并补充 deleteHead 操作均摊时间复杂度的说明。
This commit is contained in:
@@ -12,6 +12,8 @@
|
||||
|
||||
in 栈用来处理入栈(push)操作,out 栈用来处理出栈(pop)操作。一个元素进入 in 栈之后,出栈的顺序被反转。当元素要出栈时,需要先进入 out 栈,此时元素出栈顺序再一次被反转,因此出栈顺序就和最开始入栈顺序是相同的,先进入的元素先退出,这就是队列的顺序。
|
||||
|
||||
需要注意的是,只有 out 栈为空时才把 in 栈的元素全部倒进去;out 栈中还有元素时倒入,新元素会压在旧元素上面,先出栈,顺序就乱了。每个元素最多进出 in 栈、out 栈各一次,因此 deleteHead 的均摊时间复杂度为 O(1)。
|
||||
|
||||
<div align="center"> <img src="https://cs-notes-1256109796.cos.ap-guangzhou.myqcloud.com/3ea280b5-be7d-471b-ac76-ff020384357c.gif" width="450"/> </div><br>
|
||||
|
||||
```java
|
||||
|
||||
Reference in New Issue
Block a user