数一数黑节点

补全 count_black:递归数出树里黑节点的个数。 (本题用 g++ -std=c++17 -O0 编译。)

开始练习 →

红节点的孩子必须是黑的

补全 no_red_red:检查有没有「红节点挂着红孩子」。没有返回 true,有返回 false。这棵树里 15 是红的、它左边的 13 也是红的——正好违规。 (本题用 g++ -std=c++17 -O0 编译。)

开始练习 →

把违规那个染黑再检查

同一个 no_red_red。这次先把 13 染成黑色,再检查一遍。染完之后应该就合格了。 (本题用 g++ -std=c++17 -O0 编译。)

开始练习 →

B+树节点为什么装那么多键

第 1 步:每多一层能装多少条 第 2 步:一个节点装 100 个:三层百万 第 3 步:二叉树:要二十层才够 第 4 步:每一层就是一次读盘 1层 2层 3层 … 多键 二叉 100 1万 100万 2 4 8 20层 B+树一个节点动辄

开始练习 →

B+树和 B 树的区别(C++)

B+树相比 B 树,最大的不同是【0】。

开始练习 →

索引为什么不用普通 BST

数据库索引用 B+树而不是普通二叉搜索树,因为【0】。

开始练习 →

三层能装多少条

每个节点装 100 个键的 B+树,三层最多能索引多少条? 运行下面这段程序: #include <algorithm> #include <iostream> #include <map> #inclu

开始练习 →

二叉树装同样多要几层

同样一百万条数据,二叉树要多少层? 运行下面这段程序: #include <algorithm> #include <iostream> #include <map> #include <strin

开始练习 →

算一算 B+树要几层

补全 levels:每个节点装 fanout 个键,要索引 total 条,返回至少几层。算 100 个键、一百万条的情况。 (本题用 g++ -std=c++17 -O0 编译。)

开始练习 →

两种树的高度差多少

同一个 levels。一百万条数据,把 B+树(每节点 100 键)和二叉树(每节点 2 键)的层数拼起来输出,用 / 隔开。这个差距就是数据库索引选 B+树的全部理由。 (本题用 g++ -std=c++17 -O0 编译。)

开始练习 →