我很难遍历树,所以像瘟疫一样避免它......通常。
我有一个类(这里稍微简化版本,但功能相同),例如:
class Branch(object):
def __init__(self, title, parent=None):
self.title = title
self.parent = parent
我有一堆Branch
实例的字典,每个实例的标题作为键:
tree = {'Foo Branch': foo, 'Sub-Foo Branch': sub_foo, 'Bar Branch': bar}
现在,我知道有一些复杂的算法可以提高遍历效率(例如 MPTT 等),特别是用于效率最重要的数据库驱动项目。我根本不使用数据库,只使用简单的内存对象。
鉴于title
a Branch
,我需要从 获取list
该分支的所有后代(孩子,孩子的孩子,等等)的a tree
,所以:
- 您是否仍然建议使用复杂的(对于我的无算法大脑:)算法,例如 MPTT 以提高效率,或者是否有一种简单的方法可以在单个函数中实现这一点?
- 如果是这样,你会推荐哪一个,知道我没有使用数据库?
- 你能提供一个例子,还是这比我想象的要大得多?
注意:这不是家庭作业。我不在学校。我在算法方面真的很糟糕。我已经将 Django MPTT 用于需要数据库存储树的项目......但仍然不太了解它。