簡體   English   中英

python二進制搜索樹大小

[英]python binary search tree size

我試圖實現一個二叉搜索樹,而我的size()方法遇到了麻煩,該方法計算了樹中的節點數。

class BSTNode:
def __init__(self, item):

    self._element = item
    self._leftchild = None
    self._rightchild = None
    self._parent = None

這是我的尺寸功能:

def size(self):

    size = 0
    if self != None:
        size += 1
        if self._leftchild != None:
            size += 1 + self._leftchild.size()
        if self._rightchild != None:
            size += 1 + self._rightchild.size()
    return size

它超過了實際上在樹中的節點數,我不知道為什么,也許是因為它是遞歸的但我不確定。

更換

size += 1 + self._leftchild.size()

size += self._leftchild.size()

額外的1是計數過度的原因。 同樣適用於合適的孩子。

您正在對節點計數兩次。 您只應對每個節點計數一次。

def size(self):

    size = 0
    if self != None:
        size += 1
        if self._leftchild != None:
            size += self._leftchild.size()
        if self._rightchild != None:
            size += self._rightchild.size()
    return size

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM