我试图编写一个方法,从BST中删除一个元素。到目前为止,这就是我所拥有的。我不确定我是否在正确的轨道上,或者是否有更好的方法通过使用模式匹配来匹配不同的删除案例,即:没有孩子,一个孩子,两个孩子。type 'a bst = NL | BinTree of 'a * 'a bst * 'a bst;;
let rec smallest = f
一个多小时以来,我一直试图将下面的C代码转换为Lisp,以修复Paul的“ANSI”一书中的BST代码中的bst-remove函数(正如这本书的勘误表中所解释的那样),我完全感到困惑。您可能已经知道这一点,因为它是标准bst删除功能的一部分,但如下所示,需求是replace the smallest node with its right child。
我不太在意