Как создать дерево с числом дочерних узлов, определяемых во время выполнения?

Насколько я знаю, деревья создаются с использованием структур, и у деревьев, которые я создал, всегда были узлы с одинаковыми номерами. дочерних узлов, который определяется во время компиляции, как

struct node
{
int data;
struct node *left,*right;
};

у которого есть 2 дочерних узла, определенные во время компиляции. Как я могу решить, нет. дочерних узлов (который является постоянным для всех узлов) во время выполнения? Также возможно ли создать дерево, в котором дочерние узлы для каждого узла определяются во время выполнения?

0

Решение

Вот простой способ сделать это в Python (2.7): вы передаете список дочерних элементов в конструктор, чтобы вы могли решить, сколько дочерних элементов вам потребуется при запуске кода:

class TreeNode:
def __init__(self, data):
self.data = data
self.children = []

def add_children(self, child):
self.children.append(child)

def __str__(self):
return str(self.data)

def print_tree(self, root):
if root is None:
return
print root.data
for child in root.children:
self.print_tree(child)

r = TreeNode(0)
ch1 = TreeNode(1)
ch2 = TreeNode(2)
ch3 = TreeNode(3)
r.add_children(ch1)
r.add_children(ch2)
r.add_children(ch3)
ch4 = TreeNode(4)
ch1.add_achildren(ch4)

>>> r.print_tree(r)
0
1
4
2
3

«>>>» запускается от переводчика.

0

Другие решения

Других решений пока нет …