繁体   English   中英

如何在二叉搜索树中添加节点

[英]how to add a node in a binary search tree

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

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

所以两件事

  • NoneType大写: None (如果您在create_node所做的所有操作)
  • Python字符串比较区分大小写,因此,当您检查pointer["number"]值时,实际上并没有检查在create_node方法中设置的值,它的关键是"Number" (大写“ N”),这就是它的原因。抛出KeyError "right""left"

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM