【问题标题】:How to build a binary tree that if inserted succefully return True in python如何构建一个二叉树,如果插入成功,则在python中返回True
【发布时间】:2015-11-28 16:10:20
【问题描述】:

我创建了一个包含元组节点的二叉树。如果元组不在树中,我希望我的插入函数插入,如果插入则返回 True。目前,它似乎正确插入,但没有正确返回 bool 值。

class D_1_tuple_tree(): #binary Tree

def __init__(self,data=None):
    self.left = None
    self.right = None
    self.data = data

def insert(self,data): #insert Function
    if data==self.data:
        return False
    if self.data:
        if isinstance(data,tuple): #if tuple of size > 1
            tuple_lens=len(data)
            for i in range(0,tuple_lens):
                if data[i]!=self.data[i]:
                    if data[i]<self.data[i]:
                        if self.left is None:
                            self.left = D_1_tuple_tree(data)
                            return True
                        else:
                            self.left.insert(data)
                    elif data[i] > self.data[i]:
                        if self.right is None:
                            self.right = D_1_tuple_tree(data)
                            return True
                        else:
                            self.right.insert(data)


        else: #tuple of size 1
            if data!=self.data:
                if data<self.data:
                    if self.left is None:
                        self.left = D_1_tuple_tree(data)
                        return True
                    else:
                        self.left.insert(data)
                elif data > self.data:
                    if self.right is None:
                        self.right = D_1_tuple_tree(data)
                        return True
                    else:
                        self.right.insert(data)
                else:
                    return False

    else:
        self.data=data
        return True

有人知道我做错了什么吗? 谢谢!

【问题讨论】:

    标签: python-3.x recursion binary-tree


    【解决方案1】:

    您忘记返回递归结果,例如return self.left.insert(data).

    【讨论】:

    • 比你!我一直在努力解决这个错误。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-24
    • 2016-10-22
    • 1970-01-01
    • 2021-01-19
    相关资源
    最近更新 更多