如何在运行时创建一个具有子节点数的树?

时间:2015-12-14 06:30:43

标签: c++ data-structures tree structure child-nodes

据我所知,树是使用结构创建的,而我创建的树总是有相同的节点。在编译时决定的子节点,如

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

在编译期间确定了2个子节点。如何判断no。在运行时期间子节点(所有节点都是常量)?还可以创建一个树,其中每个节点的子节点在运行时决定吗?

1 个答案:

答案 0 :(得分: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

'>>>'从翻译中运行。