两个栈做出后退和前进

补全 back 和 forward:back 把当前页存进 fwd、从 bak 拿回上一页;forward 把当前页存进 bak、从 fwd 拿回下一页。依次访问首页 → 列表 → 详情,然后后退两次再前进一次,输出现在在哪一页。 (本题用

开始练习 →

一个够用的栈库要有什么

第 1 步:push:压一个进去 第 2 步:top:看一眼栈顶 第 3 步:pop:拿走栈顶 第 4 步:empty:空了就停手 a top b 手写一个够用的栈,至少要有【0】。

开始练习 →

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

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

开始练习 →

压完三个之后有几个

运行下面这段程序: #include <iostream> #include <string> #include <vector> using namespace std; template <c

开始练习 →

第一步栈本身

最终作品第一步:写出模板 Stack<T>,要有 push / pop / peek / is_empty / size。压进三个人、弹掉一个之后,输出现在的栈顶。 (本题用 g++ -std=c++17 -O0 编译。)

开始练习 →

第二步拿它去查括号

用你自己的 Stack<char>(不许直接用 vector 的 push_back / pop_back)实现括号匹配。检查 {[()]},输出 true 或 false。 (本题用 g++ -std=c++17 -O0 编译

开始练习 →

第三步拿它去做撤销

还是你自己的 Stack<string>,这次做撤销:依次输入 a、b、c,然后撤销两次。输出撤销之后的文本。 (本题用 g++ -std=c++17 -O0 编译。)

开始练习 →

第四步算后缀表达式

还是你自己的 Stack<int>,算 2 3 4 * +。 (本题用 g++ -std=c++17 -O0 编译。)

开始练习 →

交付栈库加两个应用

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

开始练习 →

内存检查抓的是什么

Makefile 带上 -fsanitize=address 以后,程序一旦【0】就会报错退出。

开始练习 →