gpt4 book ai didi

python如何实现一个列表变成一棵树?

转载 作者:太空宇宙 更新时间:2023-11-04 03:07:00 24 4
gpt4 key购买 nike

我有一个数据列表,表明接下来的方向是什么:

[[0,1,0,0,1],[0,0,1],[0,0],[0,1,1,1,0]]

我想将此数据实现为树结构,例如: enter image description here

节点里面的数字就是这个方向走了多少人。

我有一个我自己写的树类:

class Tree(object):
def __init__(self):
self.left = None
self.right = None
self.data = 0
def insert(self,num):
self.data = self.data + 1
if num == 0:
if self.left == None:
self.left = Tree()
return self.left
elif num == 1:
if self.right == None:
self.right = Tree()
return self.right

我该怎么做?我尝试以递归方式创建它,但事实证明它没有保存在 root 下,而是保存在 build_tree 下,这是我试图作为递归指针创建的变量。

root = Tree()
for route in data:
build_tree = root
for i in range (0,len(route)):
num = route[i]
build_tree = build_tree.insert(num)

谢谢!

编辑:这段代码实际上就像 Blender 在评论中所说的那样工作。当我将它实现为更复杂的代码时,我认为我出了点问题。

同时感谢 John La Rooy 的建议和 Kevin K. 的示例!

最佳答案

像这样为节点创建一个单独的类

class Node:
def __init__(self, value):
self.value = value
self.left = None
self.right = None

然后在您的 Tree 类中初始化 self.root 并在 Tree 中使用递归声明您的函数

编辑:Here是一个例子。

关于python如何实现一个列表变成一棵树?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39157193/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com