中序走出来第一个是几
把 17、24、15、13、23 依次插进一棵空的 BST。运行下面这段程序: #include <iostream> #include <string> #include <vector> using
查一个值第一步和谁比
在 BST 里查一个值,第一次比较的对象是【0】。
比根小意味着什么
第 1 步:查 60:先和根 50 比 第 2 步:60 比 50 大:往右走 第 3 步:60 比 70 小:往左,找到了 第 4 步:左边整棵根本没看 50 30 70 20 60 要找的值比根小,接下来【0】。
每比一次大约排除多少(C++)
在一棵长得比较均匀的 BST 里,每比较一次大约排除掉【0】。
查找最多要比几次(C++)
在 BST 里查一个值,最多比较的次数大约等于【0】。
查 23 比了几次
还是那棵树。运行下面这段程序,它数的是「比了几次」: #include <iostream> #include <string> #include <vector> using namespace std
写一个查找
补全 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】。