用 map 统计出现次数
补全:用 map<int, int> 数出 {3, 1, 3, 2, 3, 1} 里每个数出现几次,按从小到大输出「数:次数」,用逗号连起来。 (本题用 g++ -std=c++17 -O0 编译。)
用 set 算出排名
补全:用 distance 算出 17 在 set 里从小到大排第几(最小的算第 1)。 (本题用 g++ -std=c++17 -O0 编译。)
从 set 里删掉最小的
补全:删掉 set 里最小的元素,然后输出「剩几个/现在最小的」,格式如 4/甲。 (本题用 g++ -std=c++17 -O0 编译。)
一个够用的 BST 要有什么
第 1 步:从一棵空树开始 第 2 步:插入 50 第 3 步:插入 30 第 4 步:插入 70 第 5 步:插入 20 第 6 步:插入 60 第 7 步:查找:沿一条路往下 第 8 步:删除:叶子直接摘掉 第 9 步:中序验收:依旧升
BST 和普通二叉树的区别
二叉搜索树和普通二叉树,唯一的区别是【0】。
这棵树一共几个节点
把 17、24、15、13、23 依次插进一棵空的 BST。运行下面这段程序: #include <iostream> #include <string> #include <vector> using
第一步节点和插入
最终作品第一步:在 BST 结构里补全递归插入 ins。把 17、24、15、13、23 依次插进去,建好之后输出根的左边是几。 (本题用 g++ -std=c++17 -O0 编译。)
第二步接上查找
加上 contains,把两个查询结果拼起来输出:查 23(在)和查 20(不在),中间用 / 隔开。 (本题用 g++ -std=c++17 -O0 编译。)
第三步接上中序
加上中序遍历 inorder,把五个值按顺序拼起来输出(用 / 隔开)。插对了的话它一定是升序的。 (本题用 g++ -std=c++17 -O0 编译。)
第四步接上删除
加上 erase(删下来的节点要 delete),删掉有两个孩子的根 17,然后中序走一遍,把剩下的拼起来输出。 (本题用 g++ -std=c++17 -O0 编译。)