交付:一个栈库加两个应用

交付:一个栈库加两个应用

这是这条路线的最终作品。把完整的 Stack 写出来,再用它做括号匹配和后缀求值,然后一次验完五条: 压 3 个之后 size() 是 3 弹一次之后 peek() 是「小满」 新建的栈 is_emp

阅读更多 →
第四步:拿它去算后缀表达式

第四步:拿它去算后缀表达式

还是你自己的 Stack,算 2 3 4 * +。

阅读更多 →
第三步:拿它去做撤销

第三步:拿它去做撤销

还是你自己的 Stack,这次做撤销:依次输入 a、b、c,然后撤销两次。 输出撤销之后的文本。

阅读更多 →
第二步:拿它去查括号

第二步:拿它去查括号

用你自己的 Stack(不许直接用列表的 append / pop)实现括号匹配。 检查 {[()]},输出 True 或 False。

阅读更多 →
第一步:栈本身

第一步:栈本身

最终作品第一步:写出 Stack,要有 push / pop / peek / is_empty / size。 压进三个人、弹掉一个之后,输出现在的栈顶。

阅读更多 →
压完三个之后有几个

压完三个之后有几个

运行下面这段程序: class Stack: def __init__(self): self.items = [] def push(self, x):

阅读更多 →
为什么压入和弹出都是 O(1)

为什么压入和弹出都是 O(1)

栈的压入和弹出都是 O(1),因为【0】。

阅读更多 →
一个够用的栈库至少要有哪几样

一个够用的栈库至少要有哪几样

手写一个够用的栈,至少要有【0】。

阅读更多 →
两个栈做出后退和前进

两个栈做出后退和前进

补全 back 和 forward: back:当前页存进 fwd,从 bak 拿回上一页 forward:当前页存进 bak,从 fwd 拿回下一页 依次访问首页→列表→详情,然后后退两次再前进一次

阅读更多 →
撤到没得撤了也不能崩

撤到没得撤了也不能崩

补全 undo:history 空了就返回 没得撤了,不能报错。 只做了 a、b 两步,却撤三次,输出第三次的结果。

阅读更多 →