Добрый день, не так давно начал изучать язык, множество затруднений возникает, словом,взываю о помощи.
Начал решать задачу по написанию алгоритма Хаффмена, и вроде все понятно, но столкнулся с трудностью, которую не могу преодолеть.
На входе есть 2 массива, один с весом, другой со знакоами, порядковые номера весов и знаков совпадают. Дальше создаю массив, который отражает структуру бинарного дерева. Вот пример :
 a=[1,2,3,4,5,6,7,8,9]
b=['a','b','c','d','e','f','g','h','x']
while len(a)!=1:
    zna= [b[0],b[1]]
    z=a[0]+a[1]
    a.append(z)
    a.sort()
    b.insert(a.index(z),zna)
    del a[1]
    del a[0]
    del b[1]
    del b[0]
print(b)
[[[['d', 'e'], 'x'], [[[['a', 'b'], 'c'], 'f'], ['g', 'h']]]]
То есть, получаю многомерный массив, где каждый одиночный элемент- лист, а элемент массив- ветвление.
Собственно, вроде как замечательно, но дальше надо присвоить всем элементам значения, то есть на данном примере первым идет символ “х”, ему надо присвоить значение 00, элементам d и e присваиваются значения 011 и 010.
С этой задачей(в общем виде) я вообще ну ниак не могу справиться. Понимаю, что наверняка отнють не самое изящное решение данной задачи хочу сотворить, но может есть какой способ довести это до ума. Искренне ваш!