递归解析树的所有级别

迈克尔·T

递归解析此树结构的所有级别的最佳方法是什么。首先是三个级别,但是应该如何解析其余数据呢?这是我无法完成的一次Codility测试。这个问题还有更多,但这就是我遇到的问题。

tree = (5, (8, (12, None, None), (2, None, None)),(9, (7, (1, None, None), None), (4, (3, None, None), None)))

def recurse(T):
    calc = 0
    def do_calc(T, calc):
        if T == ():
            return calc
        calc += 1
        return do_calc(T[1:], calc)
    return do_calc(T, calc)

print recurse(tree)
Lei Shi

看来您想获取树的深度这是递归的典型解决方案:

tree = (5, (8, (12, None, None), (2, None, None)),(9, (7, (1, None, None), None), (4, (3, None, None), None)))

def tree_depth(node):

    if not isinstance(node, tuple):
        return 1
    else:
        return max(tree_depth(subnode) for subnode in node) + 1

print tree_depth(tree)

输出为5

示例代码中使用了内置函数maxgenerator表达式

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用递归获取所有树子项

JavaScript:在树递归中查找元素的所有父级

递归获取树的所有父母和孩子

如何递归地找到序列树的所有可能组合?

遍历递归定义的树中的所有节点

PHP非递归无限级别类别树

查询以与所有父级(所有级别)在树中分配给我的所有项

您如何按级别解析“树”的输出?

无法从网页的特定区域递归解析所有链接

获取特定级别的二叉树的所有节点

在所有级别中最频繁出现的树中查找节点

获取特定级别的二叉树的所有节点

(递归)所有深度级别元素的自动增量并保持链中的遗传路径

如何递归地找到ElementTree中的所有相似标签及其级别?

使用vba进行递归树解析

递归获取boost属性树中所有值的完整键路径

在 tkinter 的分层树视图中递归排列所有文件夹和文件

PHP递归循环“文件树”数组无法获取所有键

在打字稿中递归转换对象树的所有叶子

通过递归找到树中从节点到根的所有父代

在Python中递归求和并打印树中的所有节点名称和值

验证给定级别的所有节点在二叉树中是否具有不同的值

javascript将分层树拆分为所有子树,并按其级别将每个子树的节点分组

使用python在二叉树中获取给定级别上的所有节点

以完整的二叉树,阵列格式将所有节点置于一个级别

PHP:具有递归功能的嵌套菜单,仅扩展某些节点(并非所有树)

递归解析json中所有有效的日期时间字符串

递归 CTE 检查记录是否存在于任何级别,然后获取所有子项(文件夹结构)

NLTK:如何列出解析树的所有成对的相邻子树对(植根于特定的非终端)