数据结构 - 图

图的基本概念

是由顶点和边组成的。如果图中的顶点是有序的,那么图就是有方向的,称之为有向图,否则图是无方向的,称之为无向图。

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('    path A to D')
    for i in r:
        print(i)

图的分类

图的遍历

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值