Bfs / dfs搜索树,但不包括根节点的所有前身

时间:2019-01-30 16:16:45

标签: python-3.x networkx

我有一个代码可以执行一些操作,以找到源节点和目标节点之间的最短路径。但是我想显示这些需求在预期节点之间的广播。 但就我而言,我希望将我的要求转发给源节点的前任。 例如,对于最短路径[2,3,5],我想表明我的需求正在[[2,3),(3,5)(3,6),(5,8)]上转发,但链接为[ (2,1),(2,4),(4,7)] 请勿收到我的要求。 我无法附加我的MST的图片,但也许会使它更清晰,但是这里是代码:

T1 = nx.Graph()
T1.add_edges_from([(1, 2), (2, 3), (2, 4), (3, 5), (3, 6), (4, 7), (5, 8)])
T1 = G.to_directed()
print(T1.edges)
s = int(input('Enter source node:'))
t = int(input('Enter target node:'))
par_node = s
path_T1 = nx.dijkstra_path(T1, s, t)
print('shortest path between s and t:', path_T1)
for i in path_T1:
if i == par_node:
    print('origin node (signal not forwarded)', s)
else:
    pred = list(T1.neighbors(i))
    for j in pred:
        if j == par_node:
          print('Demand not forwarded on origin links') #to avoid link 3-2
        else j!= pred:
            links = T1.edges(j)
            print('Demand forwarded on following links:', links)

我尝试了几种方法来在3和5上找到邻居,然后转发我的要求。但它似乎不起作用。我也尝试使用bfs / dfs边缘。 但由于它们不会停止在前任节点上进行搜索,因此我想找出一种过滤这些值的方法。

0 个答案:

没有答案
相关问题