2014-11-21 88 views
0

我有这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"]) 

现在我已经创建了树的根:

root = create_node(5) 

我所面临的问题是,当我尝试将值添加到使用插入功能树。我错过了一些东西,我不知道该怎么做。请指教..

+2

那么,你没有大写'None'。 (我也建议使用类而不是字典!) – Ryan 2014-11-21 01:20:42

回答

0

所以两件事

  • NoneType大写:None(所有的,如果是你在create_node做)
  • Python字符串比较是大小写敏感的,所以当你检查pointer["number"]价值,你是不是真的检查你在create_node方法中设置的方法,它的关键是"Number"(大写“N”),这是它抛出的原因KeyError"right""left"也是如此。