首页 > 其他 > 详细

数据结构-图

时间:2020-01-08 02:40:48      阅读:100      评论:0      收藏:0      [点我收藏+]

有向图

技术分享图片

 

# -*- coding:utf-8 -*-
def searchGraph(graph, start, end):
    results = []
    generatePath(graph, [start], end, results)
    results.sort(key=lambda x:len(x))#按元素长度升序排序
    return results
def generatePath(graph, path, end, results):
    state = path[-1]
    if state == end:
        results.append(path)
    else:
        for arc in graph[state]:
            if arc not in path:
                generatePath(graph, path + [arc], end, results)
if __name__ == ‘__main__‘:
    Graph = {‘A‘:  [‘B‘, ‘C‘, ‘D‘],
             ‘B‘:  [‘E‘],
             ‘C‘:  [‘D‘, ‘F‘],
             ‘D‘:  [‘B‘, ‘E‘, ‘G‘],
             ‘E‘:  [],
             ‘F‘:  [‘D‘, ‘G‘],
             ‘G‘:  [‘E‘]}
    r = searchGraph(Graph, ‘A‘,‘D‘)
    print(‘************************‘)
    print(‘     path A to D‘)
    print(‘************************‘)
    for i in r:
        print(i)
    r = searchGraph(Graph, ‘A‘,‘E‘)
    print(‘************************‘)
    print(‘     path A to E‘)
    print(‘************************‘)
    for i in r:
        print(i)
    r = searchGraph(Graph, ‘C‘,‘E‘)
    print(‘************************‘)
    print(‘     path C to E‘)
    print(‘************************‘)
    for i in r:
        print(i)
************************
     path A to D
************************
[‘A‘, ‘D‘]
[‘A‘, ‘C‘, ‘D‘]
[‘A‘, ‘C‘, ‘F‘, ‘D‘]
************************
     path A to E
************************
[‘A‘, ‘B‘, ‘E‘]
[‘A‘, ‘D‘, ‘E‘]
[‘A‘, ‘C‘, ‘D‘, ‘E‘]
[‘A‘, ‘D‘, ‘B‘, ‘E‘]
[‘A‘, ‘D‘, ‘G‘, ‘E‘]
[‘A‘, ‘C‘, ‘D‘, ‘B‘, ‘E‘]
[‘A‘, ‘C‘, ‘D‘, ‘G‘, ‘E‘]
[‘A‘, ‘C‘, ‘F‘, ‘D‘, ‘E‘]
[‘A‘, ‘C‘, ‘F‘, ‘G‘, ‘E‘]
[‘A‘, ‘C‘, ‘F‘, ‘D‘, ‘B‘, ‘E‘]
[‘A‘, ‘C‘, ‘F‘, ‘D‘, ‘G‘, ‘E‘]
************************
     path C to E
************************
[‘C‘, ‘D‘, ‘E‘]
[‘C‘, ‘D‘, ‘B‘, ‘E‘]
[‘C‘, ‘D‘, ‘G‘, ‘E‘]
[‘C‘, ‘F‘, ‘D‘, ‘E‘]
[‘C‘, ‘F‘, ‘G‘, ‘E‘]
[‘C‘, ‘F‘, ‘D‘, ‘B‘, ‘E‘]
[‘C‘, ‘F‘, ‘D‘, ‘G‘, ‘E‘]

数据结构-图

原文:https://www.cnblogs.com/pfeiliu/p/12164168.html

踩
(0)
赞
(0)
   
举报
评论 一句话评论(0)
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!