首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > perl python >

Python版图的深度/广度搜寻

2013-01-17 
Python版图的深度/广度搜索#_*_coding:utf_8_import sysclass Graph():def __init__(self):visited []ed

Python版图的深度/广度搜索

#_*_coding:utf_8_import sysclass Graph():    def __init__(self):        visited = []        edges = [[]]        queue = []        V = 0        E = 0            def initGraph(self):        self.V, self.E = map(int, sys.stdin.readline().split())        self.visited = [0 for i in range(self.V+1)]        self.edges = [[] for i in range(self.V+1)]        for i in range(self.E):            f, t = map(int, sys.stdin.readline().split())            self.edges[f].append(t)            #self.edges[t].append(f)                def dfsGraph(self, u):        self.visited[u] = 1        print u,        for i in range(len(self.edges[u])):            if self.visited[self.edges[u][i]]==0:                self.dfsGraph(self.edges[u][i])        def bfsGraph(self, src):        self.visited = [0 for i in range(self.V+1)]        self.queue = []        self.queue.append(src)        self.visited[src] = 1        while len(self.queue)!=0:            u = self.queue.pop()            print u ,            for i in range(len(self.edges[u])):                v = self.edges[u][i]                if self.visited[v]==0:                    self.visited[v] = 1                    self.queue.append(v)                    def main(self):        self.initGraph()        self.dfsGraph(1)        print '\n'        self.bfsGraph(1)        graph = Graph()graph.main()#self.V, self.E = map(int, sys.stdin.readline().split()),这种输入方式是为了与acm比赛时的格式相符,而且也更合理,比raw_input()要好用一些

热点排行