交付:一个栈库加两个应用
这是这条路线的最终作品。把完整的 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),因为【0】。
阅读更多 →
一个够用的栈库至少要有哪几样
手写一个够用的栈,至少要有【0】。
阅读更多 →
两个栈做出后退和前进
补全 back 和 forward: back:当前页存进 fwd,从 bak 拿回上一页 forward:当前页存进 bak,从 fwd 拿回下一页 依次访问首页→列表→详情,然后后退两次再前进一次
阅读更多 →
撤到没得撤了也不能崩
补全 undo:history 空了就返回 没得撤了,不能报错。 只做了 a、b 两步,却撤三次,输出第三次的结果。
阅读更多 →