我正在处理一个边排序的问题,其中边以元组形式存储(node_i, node_j)
,如下所示
>> edgeLst
>> [('123','234'),
('123','456'),
('123','789'),
('456','765'),
('456','789')
('234','765')]
注意边是唯一的,如果看到('123', '234')
,就不会看到('234', '123')
(图是无向的)。图中可能有一个循环。由于这个图非常大,有没有人能告诉我一种有效的方法,用一个给定的开始节点对BFS和DFS中的边进行排序,例如'123'
?你知道吗
演示输出:
>> edgeSorting(input_lst=edgeLst, by='BFS', start_node='123')
>> [('123','234'),
('123','456'),
('123','789'),
('234','765')
('456','765'),
('456','789')]
以下是如何为BFS和DFS执行此操作:
在Python 3中,可以简化:
收件人:
。。。和
start_node
一样。你知道吗相关问题 更多 >
编程相关推荐