撤销一次之后剩下什么

运行下面这段程序: #include <iostream> #include <string> #include <vector> using namespace std; int main() {

开始练习 →

做一步撤一步

补全 do_step 和 undo:do_step 在末尾加一个字(改之前先把旧的存进 history),undo 把最近存的那份拿回来。依次做 a、b、c 之后撤销一次,输出现在的文本。 (本题用 g++ -std=c++17 -O0 编

开始练习 →

连着撤两次

同一对 do_step / undo,这次做完 a、b、c 之后连撤两次。输出现在的文本。 (本题用 g++ -std=c++17 -O0 编译。)

开始练习 →

撤到没得撤也不能崩

补全 undo:history 空了就返回 没得撤了,不能崩。只做了 a、b 两步,却撤三次,输出第三次的结果。 (本题用 g++ -std=c++17 -O0 编译。)

开始练习 →

两个栈做出后退和前进

补全 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 编译

开始练习 →