我有以下两个Node和Tree的类
节点:
class Node:
def __init__(self, identifier):
self._children = []
self._identifier = identifier
def add_children(self, node):
self._children.append(node)
def get_children(self):
return self._children
具有级别的树:
class Tree:
def __init__(self):
self._levels = {}
def add_levels(self, index, nodes):
self._levels[index] = nodes
def __getitem__(self, index):
# further stuff
return self._levels[index]
def __len__(self):
return len(self._levels)
我想构建一个组合树,如下所示。每个节点的标识符为n(例如,12,13,23是已知的)。如何以递归方式构建树,以便树的每个级别都有一个节点列表?
答案 0 :(得分:-1)
使用类方法,我可以构建一个树:
<form #myForm="ngForm">
<div *ngFor="let field of connector.configFields; let i = index">
<input name="f{{i}}" [(ngModel)]="field.value" [type]="field.name === 'Password' ? 'password' : 'text'" required #f="ngModel" minlength="2"/>
<div *ngIf="f.errors && (f.dirty || f.touched)">
<div *ngIf="f.errors.required"> This field is required </div>
<div *ngIf="f.errors.minlength"> Min 2 chars </div>
</div>
</div>
</form>
但不确定如何访问节点数据,而不是获取他们的实例:
root = Node(0)
n1 = Node(1)
n2 = Node(2)
n3 = Node(3)
n12 = Node(12)
n13 = Node(13)
n23 = Node(23)
n123 = Node(123)
n12.add_children(n123)
n1.add_children([n12, n13])
n2.add_children(n23)
root.add_children([n1, n2, n3])
t = Tree()
t.add_levels(0, root)
t.add_levels(1, [n1, n2, n3])
t.add_levels(2, [n12, n13, n23])
t.add_levels(3, [n123])
输出:
for l in range(len(t)):
print t[l]
但至少这会回答你如何构建树的问题。
希望这有帮助。