欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程语言 > python >内容正文

python

python两列数据生成邻接矩阵_用python实现邻接矩阵转换为邻接表,python语言实现...

发布时间:2023/12/10 python 64 豆豆
生活随笔 收集整理的这篇文章主要介绍了 python两列数据生成邻接矩阵_用python实现邻接矩阵转换为邻接表,python语言实现... 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

graph = {'A': ['B', 'C'],

'B': ['C', 'D'],

'C': ['D'],

'D': ['C','G','H'],

'E': ['F'],

'F': ['C']}

#从图中找出任意一条从起始顶点到终止顶点的路径

def find_path(graph, start, end, path=[]):

if start == end:

print "path", path

return True

if not graph.get(start):

path.pop()

return False

for v in graph[start]:

if v not in path:

path.append(v)

if find_path(graph,v,end,path):

return True

return False

path = []

if find_path(graph, 'A', 'C', path=path):

print(path)

else:

print(1)

#从图中找出从起始顶点到终止顶点的所32313133353236313431303231363533e58685e5aeb931333365656465有路径

import copy

def find_path_all(curr, end, path):

'''

:param curr: 当前顶点

:param end: 要到达的顶点

:param path: 当前顶点的一条父路径

:return:

'''

if curr == end:

path_tmp = copy.deepcopy(path)

path_all.append(path_tmp)

return

if not graph.get(curr):

return

for v in graph[curr]:

#一个顶点在当前递归路径中只能出现一次,否则会陷入死循环。

if v in path:

print("v %s in path %s" %(v, path))

continue

#构造下次递归的父路径

path.append(v)

find_path_all(v,end,path)

path.pop()

path_all = []

find_path_all('A', 'G',path=['A'])

print path_all

#遍历图中所有顶点,按照遍历顺序将顶点添加到列表中

vertex = []

def dfs(v):

if v not in graph:

return

for vv in graph[v]:

if vv not in vertex:

vertex.append(vv)

dfs(vv)

for v in graph:

if v not in vertex:

vertex.append(v)

dfs(v)

print(vertex)

创作挑战赛新人创作奖励来咯,坚持创作打卡瓜分现金大奖

总结

以上是生活随笔为你收集整理的python两列数据生成邻接矩阵_用python实现邻接矩阵转换为邻接表,python语言实现...的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。