簡體   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