[英]how to add a node in a binary search tree
I have this 2 function - 1st is creating a node , 2nd is a recursion function that goes through the tree in order to find a placement for a value: 我有这个2函数-第一个是创建节点,第二个是遍历树以查找值放置的递归函数:
def create_node(number=None):
return {"Number": number, "Right": None, "Left":None}
def insert(number, pointer):
pointer_number=pointer["number"]
if pointer_number is none:
pointer["number"]=number
elif number > pointer_number:
if pointer["right"] is none:
pointer["right"] = create_node(number)
else:
insert(number, pointer["right"])
else:
if pointer["left"] is none:
pointer["left"] = create_node(number)
else:
insert (number, pointer["left"])
Now I've created the root of the tree: 现在,我创建了树的根:
root = create_node(5)
The problem i face is when i try to add a value to the tree using the insert function. 我面临的问题是当我尝试使用插入功能将值添加到树中时。 I'm missing something and I don't know how to do it.
我缺少了一些东西,但我不知道该怎么做。 Please advise ..
请指教 ..
So 2 things 所以两件事
None
(all if's you do in create_node
) None
(如果您在create_node
所做的所有操作) pointer["number"]
value you are not really checking the one you set in the create_node
method, which it's key is "Number"
(capital "N"), being the reason it throws KeyError
. pointer["number"]
值时,实际上并没有检查在create_node
方法中设置的值,它的关键是"Number"
(大写“ N”),这就是它的原因。抛出KeyError
。 Same for "right"
and "left"
. "right"
和"left"
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.