Python 3.x 我的insert方法是否在二元搜索树类中,该类处理重复值时错误地将元素放入?(Python) def插入(自身,值): 自身._总计+=int(值) 如果self.isEmpty(): self.\u根=self.\u节点(值) 自。_totalNums+=1 自身差异+=1 返回 父项=无 探针=自根 而(探测!=无): 如果值==探测。\u值: 探头计数+=1 自。_totalNums+=1 返回 如果值

Python 3.x 我的insert方法是否在二元搜索树类中,该类处理重复值时错误地将元素放入?(Python) def插入(自身,值): 自身._总计+=int(值) 如果self.isEmpty(): self.\u根=self.\u节点(值) 自。_totalNums+=1 自身差异+=1 返回 父项=无 探针=自根 而(探测!=无): 如果值==探测。\u值: 探头计数+=1 自。_totalNums+=1 返回 如果值,python-3.x,duplicates,binary-tree,insertion,Python 3.x,Duplicates,Binary Tree,Insertion,使用顺序遍历打印BST时,我得到以下结果: (首先是元素/值,c是值的数量,d是值的深度) 打印树 1 c(4)d(1), 100 c(1)d(6), 1000 c(1)d(5), 2000c(1)d(2),, 23 c(1)d(1), 4 c(11)d(3), 45 c(2)d(1),, 50 c(2)d(4),, 67 c(1)d(1),当比较值和探测值时,我实际上明白了这一点。它比较字符串,因此认为“50”大于“100”。将它们转换为整数解决了问题现在还不清楚问题出在哪里。请具体说明。此外

使用顺序遍历打印BST时,我得到以下结果: (首先是元素/值,c是值的数量,d是值的深度)

打印树 1 c(4)d(1), 100 c(1)d(6), 1000 c(1)d(5), 2000c(1)d(2),, 23 c(1)d(1), 4 c(11)d(3), 45 c(2)d(1),, 50 c(2)d(4),,
67 c(1)d(1),

当比较值和探测值时,我实际上明白了这一点。它比较字符串,因此认为“50”大于“100”。将它们转换为整数解决了问题

现在还不清楚问题出在哪里。请具体说明。此外,如果您在代码中加入打印语句以及显示问题的示例数据,这将非常有用。这只是一个函数,如果您运行它,它不会做任何事情。在执行上述建议时,您也可能会发现问题所在。
def insert(self, value) :
        self._total += int(value)
        
        if self.isEmpty() :
            self._root = self._Node(value)
            self._totalNums += 1
            self._distinctNums += 1
            return
        
        parent = None
        probe = self._root
        
        while (probe != None) :
            if value == probe._value:
                probe._count += 1
                self._totalNums += 1
                return
                
            if value < probe._value :
                parent = probe
                probe = probe._left
                
            else :
                parent = probe
                probe = probe._right
                
        
        if (value < parent._value) :
            parent._left = self._Node(value)
            self._totalNums += 1
            self._distinctNums += 1
        elif (value > parent._value) :
            parent._right = self._Node(value)
            self._totalNums += 1
            self._distinctNums += 1