#_*_coding:utf_8_
import sys
class 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()要好用一些
Python版图的深度/广度搜索
最新推荐文章于 2023-10-16 00:05:41 发布