码迷,mamicode.com
首页 > 编程语言 > 详细

python 图实现

时间:2016-01-13 23:21:41      阅读:218      评论: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
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!