首页 > 编程语言 > 详细

python 图实现

时间:2016-01-13 23:18:51      阅读:231      评论:0      收藏:0      [点我收藏+]

 

#coding:utf-8
__author__ = similarface

class Graph:
    def __init__(self,label,extra=None):
        #节点是类实例
        self.name=label
        #而图是由类实例链接而成
        self.data=extra
        self.arcs=[]

    def __repr__(self):
        return self.name

    def search(self,goal):
        Graph.solns=[]
        self.generate([self],goal)
        Graph.solns.sort(key=lambda x:len(x))
        return Graph.solns

    def generate(self, path, goal):
        if self == goal:
            Graph.solns.append(path)
        else:
            for arc in self.arcs:
                if arc not in path:
                    arc.generate(path + [arc], goal)
if __name__=="__main__":
    for name in "ABCDEFG":
        exec("%s = Graph(‘%s‘)" % (name, name))
    A.arcs = [B, E, G]
    B.arcs = [C]
    C.arcs = [D, E]
    D.arcs = [F]
    E.arcs = [C, F, G]
    G.arcs = [A]

    A.search(G)

 

python 图实现

原文:http://www.cnblogs.com/similarface/p/5128790.html

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