Several enhancements and fixes

This commit is contained in:
krahets
2023-09-14 03:36:31 +08:00
parent a9d70e9e4b
commit d190dbf3c1
18 changed files with 84 additions and 70 deletions

View File

@@ -21,3 +21,11 @@
!!! question "双向队列像是两个栈拼接在了一起,它的用途是什么?"
双向队列就像是栈和队列的组合,或者是两个栈拼在了一起。它表现的是栈 + 队列的逻辑,因此可以实现栈与队列的所有应用,并且更加灵活。
!!! question "撤销undo和反撤销redo具体是如何实现的"
使用两个堆栈,栈 `A` 用于撤销,栈 `B` 用于反撤销。
1. 每当用户执行一个操作,将这个操作压入栈 `A` ,并清空栈 `B`
2. 当用户执行“撤销”时,从栈 `A` 中弹出最近的操作,并将其压入栈 `B`
3. 当用户执行“反撤销”时,从栈 `B` 中弹出最近的操作,并将其压入栈 `A`