我知道在BST中插入节点的基本工作代码。但是我希望这个函数在BST的右端添加一个节点(因为它的值是该树中的最大值),但它不起作用,我想知道原因。我试着调试它,但我仍然不清楚它为什么会这样。def putValueInBST(root, val): # assuming the val = 7 which is max of all the existing node values in BSTroot.data:
我试图在Julia中实现BST,但在调用insert函数时遇到了问题。当我尝试创建新节点时,结构保持不变。我的代码: key::Int64 right if node我尝试的下一个版本是在Node中使用定义的数据类型,但是当我尝试调用insert with nothing值(类似于C Null)时,它给了我错误。
谢谢你的回答。
我是SML的新手,正在尝试实现BST。我已经知道了如何在树中解析,但是很难创建一个insert函数。我希望函数是:插入( BST,key,value)类型的BST * int * int -> BST,其中它将一个键值对插入到给定的树中并返回结果树。但是,我在创建这个函数的过程中遇到了一些困难,因为我在确保函数的类型是正确
假设我们想插入更小的值。当函数Node (insert x left, k, right)被声明为只接受一个参数时,我不明白我们怎么能有insert x left。怎样才能将left也传递给插入函数?type 'a bst_t = | Node of 'a bst_t * 'a * 'a bst_t
| Leaf -
我试图实现二进制搜索树的代码。问题是下面的代码不工作,但如果我传递双指针插入像insert(struct ** node,data)这样的函数,它就能工作。我认为它也应该适用于传递单个指针。有人能解释一下这里的错误是什么吗?void insert(struct bst* node, int data ) if (node == NULL) printf("here with %d\n",data);
node =