写一个查找

补全 bst_find:在 BST 里查 val,在就返回 true,不在返回 false。这次查的是 23。 (本题用 g++ -std=c++17 -O0 编译。)

开始练习 →

查一个根本不在的值

同一个 bst_find,这次查 20——它不在树里。走到空位就要停下来返回 false,不能读空指针。 (本题用 g++ -std=c++17 -O0 编译。)

开始练习 →

顺便数出比了几次

补全 steps:返回查找 val 时一共比较了几次(比到就停)。这次查 13。 (本题用 g++ -std=c++17 -O0 编译。)

开始练习 →

新值该插到哪儿

第 1 步:插 65:从根往下走 第 2 步:比 50 大:往右 第 3 步:比 70 小:往左 第 4 步:比 60 大,右边是空位:挂上 50 30 70 20 60 65 往 BST 里插一个新值,位置的定法是【0】。

开始练习 →

新节点总长在哪个位置

按标准做法插进去的新节点,总是成为一个【0】。

开始练习 →

同样几个数插入顺序不同

同样一批数,按不同的顺序插进 BST,结果是【0】。

开始练习 →

插一个已经有的值(C++)

往 BST 里插一个已经存在的值,标准做法是【0】。

开始练习 →

插入 20 后它挂在谁下面

还是那棵树,再插一个 20。运行下面这段程序: #include <iostream> #include <string> #include <vector> using namespace std;

开始练习 →

自己写插入

补全 insert:用递归把 val 插进去,返回这棵子树新的根。把 17、24、15 依次插进空树,输出根的右边是几。 (本题用 g++ -std=c++17 -O0 编译。)

开始练习 →

插完之后中序还得是升序

同一个 insert。插完五个数之后再插一个 20,然后中序走一遍,输出第 4 个数。插对了的话中序仍然是升序的。 (本题用 g++ -std=c++17 -O0 编译。)

开始练习 →