如何创建一棵子节点数在 运行 时决定的树?
How to create a tree with the number of child nodes being decided at run time?
据我所知,树是使用结构创建的,而我创建的树始终具有相同编号的节点。在编译时决定的子节点,如
struct node
{
int data;
struct node *left,*right;
};
其中有 2 个子节点在编译期间决定 time.How 我决定编号吗?在 运行 时间内子节点的数量(对于所有节点都是常量)?也可以创建一棵树,其中每个节点的子节点都在 运行 时间内决定吗?
这是 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
'>>>' 是 运行 来自口译员。
据我所知,树是使用结构创建的,而我创建的树始终具有相同编号的节点。在编译时决定的子节点,如
struct node
{
int data;
struct node *left,*right;
};
其中有 2 个子节点在编译期间决定 time.How 我决定编号吗?在 运行 时间内子节点的数量(对于所有节点都是常量)?也可以创建一棵树,其中每个节点的子节点都在 运行 时间内决定吗?
这是 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
'>>>' 是 运行 来自口译员。