交付:查、插、删、中序一起验收

交付:查、插、删、中序一起验收

这是这条路线的最终作品。把 BNode、insert、find、中序、remove 全写出来,然后一次验完五条: 插完五个数,节点是 5 个 find(23) 是真、find(20) 是假 中序是 1

阅读更多 →
第四步:接上删除(最难的那种)

第四步:接上删除(最难的那种)

加上 remove,删掉有两个孩子的根 17,然后中序走一遍,把剩下的拼起来输出。

阅读更多 →
第三步:接上中序

第三步:接上中序

加上中序遍历,把五个值按顺序拼起来输出(用 / 隔开)。 插对了的话它一定是升序的。

阅读更多 →
第二步:接上查找

第二步:接上查找

加上 find,把两个查询结果拼起来输出:查 23(在)和查 20(不在),中间用 / 隔开。

阅读更多 →
第一步:节点类和插入

第一步:节点类和插入

最终作品第一步:写出 BNode 和 insert,把 17、24、15、13、23 依次插进去。 建好之后输出根的左边是几。

阅读更多 →
这棵树一共几个节点

这棵树一共几个节点

运行下面这段程序: class BNode: def __init__(self, val): self.val = val self.left = None

阅读更多 →
BST 和普通二叉树的唯一区别

BST 和普通二叉树的唯一区别

二叉搜索树和普通二叉树,唯一的区别是【0】。

阅读更多 →
一个够用的 BST 至少要有哪几样

一个够用的 BST 至少要有哪几样

手写一棵够用的二叉搜索树,至少要有【0】。

阅读更多 →
某个值排第几

某个值排第几

补全 rank:返回 val 在这棵树里从小到大排第几(最小的算第 1),不在返回 0。 这次问的是 17 排第几。

阅读更多 →
某个区间里有几个

某个区间里有几个

补全 count_range:返回落在 [lo, hi] 区间内(含两端)的节点个数。 这次数的是 15 到 23。

阅读更多 →