2016-10-27 3 views
-2
dict = { 
'a':'apple', 
'b':'ball', 
'c':'cat', 
'd':'dog' 
'e':'elepant', 
'f':'fan', 
'g':'goat', 
} 

Если бы у меня был такой словарь, возможно ли преобразовать его в двоичное дерево? я хотел превратить это в сбалансированное двоичное дерево, так что, когда пользователь вводит письмо для поиска, он затем выполняет постоперационный обход для поиска буквы из дерева, а затем, в конце концов, он будет печатать слово ... я использую python 3.4 ... :)Как преобразовать dict в двоичное дерево в Python?

+1

Добро пожаловать на сайт! Любое двоичное дерево или сбалансированное? По ключевому слову? Пожалуйста, отредактируйте свой вопрос (https://stackoverflow.com/posts/40291004/edit), чтобы предоставить более подробную информацию о том, что вы пробовали, и о том, чего вы надеетесь достичь. ** Кроме того, ** какая версия Python? Py2 и Py3 могут иметь разные ответы. – cxw

+2

Рядом с дубликатом http://stackoverflow.com/q/2298165/2800918 – CAB

ответ

0

ОК, поэтому короткий ответ на короткий вопрос.

  1. Не используйте dict в качестве имени переменной, так как это имя типа. Используйте words или что-то вместо этого.

  2. Использовать код от this answer.

  3. ли

    tree = binary_tree(words.values()) 
    

    , чтобы получить дерево значений в виде вложенного списка.

    В качестве альтернативы, в Python 3, по крайней мере, вы должны быть в состоянии сделать

    tree = binary_tree(words.items()) 
    

    , чтобы получить дерево с ключом и значением в каждом элементе списка.

Редактировать да, канальные только ответы плохие. :) Переменное переименование достаточно важно, я думаю, это стоит упомянуть.

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