2013-04-28 1 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:]) 

s это строка, вы пытаетесь read, а t - это доля дерева, которое вы оставили для изучения.

+0

Что такое 't' и 's'? Я принимаю 's' - это символ, и я не уверен в 't'. Спасибо за ваш ответ. –

+1

sorry - s - это строка, которую вы пытаетесь прочитать, а t - это доля дерева, которое вы оставили для изучения. – James

+0

Но вам нужно поп(), чтобы удалить элемент, который мы только что нашли, поэтому мы определяем, что осталось исследовать, не так ли? Каков результат, который вы получаете при использовании предложенного вами метода? –

 Смежные вопросы

  • Нет связанных вопросов^_^