From 6c229f46b47141ef98a1e8cb1cd7d85e5c707a5b Mon Sep 17 00:00:00 2001 From: CyC2018 Date: Fri, 30 Oct 2026 20:18:08 +0800 Subject: [PATCH] =?UTF-8?q?Update=209.=20=E7=94=A8=E4=B8=A4=E4=B8=AA?= =?UTF-8?q?=E6=A0=88=E5=AE=9E=E7=8E=B0=E9=98=9F=E5=88=97.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 补充出栈时元素转移条件的注意事项,并补充 deleteHead 操作均摊时间复杂度的说明。 --- notes/9. 用两个栈实现队列.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/notes/9. 用两个栈实现队列.md b/notes/9. 用两个栈实现队列.md index df8dc723..51472537 100644 --- a/notes/9. 用两个栈实现队列.md +++ b/notes/9. 用两个栈实现队列.md @@ -12,6 +12,8 @@ in 栈用来处理入栈(push)操作,out 栈用来处理出栈(pop)操作。一个元素进入 in 栈之后,出栈的顺序被反转。当元素要出栈时,需要先进入 out 栈,此时元素出栈顺序再一次被反转,因此出栈顺序就和最开始入栈顺序是相同的,先进入的元素先退出,这就是队列的顺序。 +需要注意的是,只有 out 栈为空时才把 in 栈的元素全部倒进去;out 栈中还有元素时倒入,新元素会压在旧元素上面,先出栈,顺序就乱了。每个元素最多进出 in 栈、out 栈各一次,因此 deleteHead 的均摊时间复杂度为 O(1)。 +

```java