2013-04-28 58 views
0

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

例子:

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

或者如果你喜欢:

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

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

任何人都可以给我一个最好的方式来做到这一点暗示吗?

回答

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:]) 

- 是不是你要的字符串阅读,而t是你留下来探索的那部分树。

+0

't'和's'是什么?我假设's'是符号,我不确定't'。谢谢您的回答。 – 2013-04-28 22:36:15

+1

抱歉 - s是您正在尝试阅读的字符串,t是您剩下要浏览的树的一部分。 – James 2013-04-29 00:46:26

+0

但是你需要一个pop()来删除我们刚刚找到的元素,所以我们定义了剩下要探索的东西,对吧?当您使用您建议的方法时,您获得的输出是什么? – 2013-04-29 12:27:05