属性二进制代码作为Python中二叉树的路径

时间:2013-04-28 20:43:37

标签: python binary-tree huffman-code

如何根据二进制树中的路径将二进制代码归属为符号?换句话说,一本字典。

树的例子:

tree=[['a', 'p'], [[['n', 'u'], 'o'], ' ']]

或者如果您愿意:

tree=[
        ['a', 'p'],
        [
            [
                ['n', 'u'],
                'o'
            ],
            ' '
        ]
     ]

我尝试使用递归方法来到达指定的符号,并将其路径记录为字符串,添加0或1,因为它遍历分支,但没有成功,我不知道如何从根遍历树。

任何人都可以给我一些最好的方法吗?

1 个答案:

答案 0 :(得分:1)

关闭上一个问题,如果你需要输入一长串字符而你不知道每个字符何时被切断:

global tree #just declare the tree globally -- this is just shorthand
def findMessage(t, s):
    if (s == ""):
        return ""
    if(isinstance(t, str)):
        return t + findMessage(tree[int(s[0])], s[1:])
    return findMessage(t[int(s[0])], s[1:])

s是您尝试阅读的字符串,而t是您要探索的树的一部分。