我尝试使用迭代深度优先搜索来实现分支和绑定,但不知道什么是最佳的数据结构表示?我想计算从根到离开的每个分支遍历的权重。如果分支值超过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']}`
但似乎这种表述在我的情况下是不合适的。有什么建议吗?