This commit is contained in:
krahets
2024-01-12 21:13:51 +08:00
parent 97f3be5bc8
commit 10c61fd528
18 changed files with 45 additions and 75 deletions

View File

@ -1725,7 +1725,7 @@ comments: true
综上,我们不能简单地确定哪种实现更加节省内存,需要针对具体情况进行分析。
## 5.1.4   栈典型应用
## 5.1.4   栈典型应用
- **浏览器中的后退与前进、软件中的撤销与反撤销**。每当我们打开新的网页,浏览器就会对上一个网页执行入栈,这样我们就可以通过后退操作回到上一个网页。后退操作实际上是在执行出栈。如果要同时支持后退和前进,那么需要两个栈来配合实现。
- **程序内存管理**。每次调用函数时,系统都会在栈顶添加一个栈帧,用于记录函数的上下文信息。在递归函数中,向下递推阶段会不断执行入栈操作,而向上回溯阶段则会不断执行出栈操作。

View File

@ -24,7 +24,7 @@ comments: true
**Q**:双向队列像是两个栈拼接在了一起,它的用途是什么?
双向队列就像是栈和队列的组合或两个栈拼在了一起。它表现的是栈 + 队列的逻辑,因此可以实现栈与队列的所有应用,并且更加灵活。
双向队列就像是栈和队列的组合或两个栈拼在了一起。它表现的是栈 + 队列的逻辑,因此可以实现栈与队列的所有应用,并且更加灵活。
**Q**撤销undo和反撤销redo具体是如何实现的