Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 如何在python中构建二叉树,如果插入成功,该二叉树将返回True_Python 3.x_Recursion_Binary Tree - Fatal编程技术网

Python 3.x 如何在python中构建二叉树,如果插入成功,该二叉树将返回True

Python 3.x 如何在python中构建二叉树,如果插入成功,该二叉树将返回True,python-3.x,recursion,binary-tree,Python 3.x,Recursion,Binary Tree,我创建了一个具有元组节点的二叉树。如果元组不在树中,我希望我的insert函数插入,如果插入,则返回True。目前,它似乎正确插入,但没有正确返回布尔值 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

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

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
类D_1_元组_树():#二叉树
def uuu init uuuu(self,data=None):
self.left=无
self.right=无
self.data=数据
def insert(自我,数据):#插入函数
如果data==self.data:
返回错误
如果是自助数据:
if isinstance(数据,元组):#if大小的元组>1
tuple_lens=len(数据)
对于范围内的i(0,元组镜头):
如果数据[i]=自我数据[i]:
如果数据[i]自身数据[i]:
如果self.right为无:
self.right=D_1_元组树(数据)
返回真值
其他:
self.right.insert(数据)
else:#大小为1的元组
如果是数据=自我数据:
如果数据为自我数据:
如果self.right为无:
self.right=D_1_元组树(数据)
返回真值
其他:
self.right.insert(数据)
其他:
返回错误
其他:
self.data=data
返回真值
有人知道我做错了什么吗?
谢谢

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

比您还多!我一直在努力解决这个问题。