美文网首页
无权最短路径

无权最短路径

作者: 6b7d78bff1fd | 来源:发表于2016-03-29 10:43 被阅读0次
def makeAdjacencyList():
    al = {}
    al[1] = [2, 4]
    al[2] = [4, 5]
    al[3] = [1, 6]
    al[4] = [5, 6, 7, 3]
    al[5] = [7]
    al[6] = []
    al[7] = [6]
    return al


class Vertex(object):
    def __init__(self):
        self.known = False
        self.dist = None
        self.path = None


def initializeTable(adjacencyList, vertexAsStart):
    T = {}
    for vrtx in adjacencyList.iterkeys():
        v = Vertex()
        T[vrtx] = v
    T[vertexAsStart].dist = 0
    return T


def findShortestPathInUnweightedGraph(adjacencyList):
    T = initializeTable(adjacencyList, 3)
    vertexs = adjacencyList.keys()
    currDist = 0
    for i in vertexs:
        for v in vertexs:
            if T[v].known == False and T[v].dist == currDist:
                T[v].known = True
                for w in adjacencyList[v]:
                    if T[w].dist == None:
                        T[w].dist = currDist + 1
                        T[w].path = v
        currDist += 1
    return T

adjacencyList = makeAdjacencyList()
T = findShortestPathInUnweightedGraph(adjacencyList)
                    
dct = {}    

for vrtx, attrs in T.iteritems():
    dct.setdefault(attrs.dist, [])
    dct[attrs.dist].append(vrtx)
        

print dct

for vrtx, attrs in T.iteritems():
    print vrtx, attrs.known, attrs.dist, attrs.path
{0: [3], 1: [1, 6], 2: [2, 4], 3: [5, 7]}
1 True 1 3
2 True 2 1
3 True 0 None
4 True 2 1
5 True 3 2
6 True 1 3
7 True 3 4

相关文章

  • 最短路径问题

    无权图单源最短路径 有权图单源最短路径 有权图单源最短路径和无权图最短路径不一样,不能单从节点数来看,比如上图中,...

  • 无权最短路径

  • 最短路径

    无权图的最短路径用BFS来求 O(|V|+|E|) 有向带权图两点之间的最短路径也包含了路径上其他顶点间的最短路径...

  • 第七讲-图(中)

    最短路径 问题分类:单源,多源 无权图的单源最短路径用bfs就可以解决。按照递增(非递减)的顺序找出从源到各个定点...

  • 图论总结-拓扑排序以及最短路径问题(无权最短路径、Dijkstr

    图的定义 一个图(graph)G = (V,E) 由 顶点(vertex) 集 V 和 边(edge) 集 E 组...

  • 图的应用-最短路径求解

    图的最短路径   图的最短路径是一个起点到一个终点之间最短的路径。  用于解决最短路径问题的算法被称做“最短路径算...

  • 栈 队列 queue 队列的基本应用:广度优先遍历 树;层序遍历 图;无权图的最短路径 树 二分搜索树:二叉树:

  • 11.图的广度优先遍历与无权图的最短路径

    图的广度优先遍历与无权图的最短路径 点击这里,前提知晓... 一、图的广度优先遍历 和树的广度优先遍历的思想一样,...

  • Yen的K条最短路径算法(KSP)

    一、问题介绍 1.求K条最短路径的必要性 最短路径问题分为: 单源最短路径 所有顶点对间的最短路径 共同的缺陷:这...

  • 最短路径算法

    最短路径算法可以分为两类:单源最短路径问题:从某固定源点出发,求其到所有其他顶点的最短路径。多源最短路径问题:求任...

网友评论

      本文标题:无权最短路径

      本文链接:https://www.haomeiwen.com/subject/oshslttx.html