按升序插进去有多高

把 13、15、17、23、24 按升序插进一棵普通 BST(每个新数都挂在上一个的右边)。 运行下面这段程序: #include <algorithm> #include <iostream> #include &

开始练习 →

右旋一次之后有多高

那棵往左歪的小树(17 的左边挂 15,15 的左边挂 13),右旋一次。 运行下面这段程序: #include <algorithm> #include <iostream> #include <map>

开始练习 →

算出平衡因子

补全 balance_factor:左子树高度减右子树高度。拿那棵往左歪的小树的根来算,输出结果。 (本题用 g++ -std=c++17 -O0 编译。)

开始练习 →

判断需不需要旋转

补全 need_rotate:平衡因子的绝对值超过 1 就返回 true。还是那棵往左歪的小树,输出结果。 (本题用 g++ -std=c++17 -O0 编译。)

开始练习 →

亲手做一次右旋

补全 rotate_right:把左孩子转上来当根,返回新的根。⚠️ 左孩子原来的右子树不能丢,要接到老根的左边。转完之后输出新根的值。 (本题用 g++ -std=c++17 -O0 编译。)

开始练习 →

红黑树的根是什么颜色(C++)

红黑树规定根节点一定是【0】。

开始练习 →

红黑树最关键的性质

第 1 步:一棵四个节点的树 第 2 步:深色是黑,橙色是红 第 3 步:红的 15 下面又挂着红的 第 4 步:把 13 染深:合规了 17 15 24 13 让红黑树「不会太歪」的那条性质是【0】。

开始练习 →

红黑树比 AVL 好在哪(C++)

工程上更常用红黑树而不是 AVL,是因为【0】。

开始练习 →

这棵树里有几个黑节点

一棵小树:17 是黑的根,左边挂红色的 15,右边挂黑色的 24,15 的左边还挂着红色的 13。 运行下面这段程序: #include <algorithm> #include <iostream> #includ

开始练习 →

根是黑的吗

同一棵树。 运行下面这段程序: #include <algorithm> #include <iostream> #include <map> #include <string> #inclu

开始练习 →