gpt4 book ai didi

python - 在 python 中实现树结构的最佳方法是什么

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:04:17 24 4
gpt4 key购买 nike

在 python 中实现树结构(通用 - 非二进制)的最佳方法是什么?我的直觉有以下骨架:

class TNode(self, data):
#enter things for each individual node

class TStructure(self):
#enter code for implementing nodes that reference each other.

最佳答案

为什么不只为节点创建一个包含子节点列表的类?

编辑以添加骨架:

class TreeNode(object):
def __init__(self, data, children=[]):
self.data = data
self.children = list(children)

def add(self, child):
self.children.append(child)
...

其实没什么好说的。每个 TreeNode 都包含一组子节点(叶节点只有 0 个子节点,这与您所能得到的树叶节点的定义的纯代码实现非常接近)。您可以添加方法来操纵子项的顺序,但如果您需要这样做,最好只考虑公开的 children 列表并直接使用列表方法。您可以添加像 search 这样的方法,但是对于没有已知排序约束的通用树(例如在二叉搜索树中,其中一个子树的内容少于另一个子树的内容)没有很多事情要做。您可以添加用于遍历的生成器方法(具有多种可能的遍历策略)。

如果只希望叶子节点有数据,那么内部节点和叶子节点有一个单独的类,其中内部节点有children,叶子节点有data.

关于python - 在 python 中实现树结构的最佳方法是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7720435/

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