一个多小时以来,我一直试图将下面的C代码转换为Lisp,以修复Paul的“ANSI”一书中的BST代码中的bst-remove函数(正如这本书的勘误表中所解释的那样),我完全感到困惑。这就是C版本中指针的来源,我不知道我在Lisp中做了什么来达到类似的目的。您可能已经知道这一点,因为它是标准bst删除功能的一部分,但如下所示,需求是replace the smallest node with its right child。
我不太在意还钱的事。想法(不起作用<
我正在Javascript中实现一个简单的Binary Search Tree,但我无法理解Javascript的做事方式。在我的insertHelper方法中,我分配了一个新的BinaryNode,但是在函数返回之后,即使我在insert方法中显式地使用了this指针,它仍然是null。有人能帮我解释一下吗?;};
var bst = new BinarySearchTree();
我试图编写一个方法,从BST中删除一个元素。到目前为止,这就是我所拥有的。我不确定我是否在正确的轨道上,或者是否有更好的方法通过使用模式匹配来匹配不同的删除案例,即:没有孩子,一个孩子,两个孩子。type 'a bst = NL | BinTree of 'a * 'a bst * 'a bst;;
| NL -
我正在尝试构建这个简单的Javascript二进制搜索树。我只是为树创建了addItem方法,但是似乎没有向树中添加任何项。我已经将addItem方法分成了其他几个方法,以确保正确地传递树引用而不会出现任何错误。我认为问题出现在addNode递归调用中。this.left=null; } console.log(this.value);}
class BST</em