Если задано дерево с узлами с целыми числами: 1 ~ 10 и коэффициент ветвления 3 для всех узлов, как я могу написать функцию, которая проходит через подсчет деревьев от корня до листы для КАЖДЫХ путейПодсчет всех узлов всех путей от корня до листьев
Так для этого примера, скажем, он должен вернуть это:
{1: 1, 2: 5}
Я попробовал эту вспомогательную функцию:
def tree_lengths(t):
temp = []
for i in t.children:
temp.append(1)
temp += [e + 1 for e in tree_lengths(i)]
return temp
Есть слишком много ошибок ш с этим кодом. Во-первых, он оставляет следы каждого посещенного узла в обходе в возвращающемся списке, поэтому сложно определить, какие из них являются значениями, которые мне нужны из этого списка. Для другого, если дерево велико, оно не оставляет следов корневого и раннего узлов на пути до достижения линии «для i в t.children». Он должен сначала: дублировать все пути от корневых листьев; second: возвращает список исключительно для конечного числа каждого пути.
Пожалуйста, помогите! Это так сложно.
Вы пытаетесь подсчитать количество путей? или вы пытаетесь перечислить все пути? – inspectorG4dget
На самом деле не совсем понятно, чего вы пытаетесь достичь. Например, вы сказали (1 ~ 10), что означает вывод '{1: 1, 2: 5}'? Каковы ключи и какие значения? – khajvah