我尝试使用迭代深度优先搜索来实现分支和绑定,但不知道什么是最好的数据结构表示?我想计算从根到离开的每个分支的权重。如果分支值超过 max_weight,则修剪分支,并回溯到相邻分支
下图显示了树的简单说明。
0
/ \
/ \
1 (X1=1) 0 (X1=0)
/ \ / \
/ \ / \
1 (X2=1) 0 (X2=0) 1(X2=1) 0(X2=0)
/ \ /
/ \ /
1 (X3=1) 0 (X3=0) 1 (X3=1)
树从
root 0 ->
node X1=1 ->
node X2=1 ->
node X3=1 (calculate branch value)->
node X3=0 (calculate branch value)->
node X2 = 0->
node X3=1 (calculate branch value)->
node X1=0 ->
node X2=1 (calculate branch value)
node X2=0 (calculate branch value)
我的问题是,节点和边缘的最佳表示(列表?字典?)是什么?
例如,下面的示例显示了具有每个节点的清晰表示的树的表示
graph = {'A':['B','C'],'B':['D','E'],'C':['D','E'],'D':['E'],'E':['A']}`
但在我的情况下,这种表示似乎是不合适的。有什么建议吗?