-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathbusca.py
93 lines (75 loc) · 1.95 KB
/
busca.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
def buscaLargura(listaAdj, s):
visitado = [0 for x in range(len(listaAdj))]
visitado[s] = 1
print(s)
f = [s]
while len(f) != 0:
u = f.pop([0])
for i in listaAdj[u]:
if visitado[i] == 0:
visitado[i] = 1
print(i)
f.append(i)
def Busca_Prof(listaAdj, s):
visitado = [0 for i in range(len(listaAdj))]
visitado[s] = 1
print(s)
p = [s]
r = []
while len(p) != 0:
u = p[-1]
existeAdj = False
for v in listaAdj[u]:
if visitado[v] == 0:
visitado[v] = 1
print(v)
p.append(v)
existeAdj = True
break
if not existeAdj:
p.pop()
global visitado
def buscaProfRec(listaAdj, s):
global visitado
visitado = [0 for x in range(len(listaAdj))]
prof(listaAdj, s)
def prof(listaAdj, u):
global visitado
visitado[u] = 1
print(u)
for i in listaAdj[u]:
if visitado[i[0]] == 0:
prof(listaAdj, i[0])
def Componentes_Conexas(listaAdj):
global visitado
visitado = [0 for i in range(len(listaAdj))]
marca = 0
for i in range(len(listaAdj)):
if visitado[i] == 0:
marca = marca + 1
Prof_Con(listaAdj, i, marca)
def Prof_Con(listaAdj, u, marca):
global visitado
visitado[u] = marca
print(u, marca)
for v in listaAdj[u]:
if visitado[v[0]] == 0:
Prof_Con(listaAdj, v, marca)
global ordem
def Ord_Topologica(listaAdj):
global visitado
global ordem
ordem = []
visitado = [0 for i in range(len(listaAdj))]
for v in listaAdj:
if visitado[v] == 0:
ProFord(listaAdj, v)
print(ordem)
def ProFord(listaAdj, u):
global oredem
global visitado
visitado[u] = 1
for v in listaAdj[u]:
if visitado[v[0]] == 0:
ProFord(listaAdj, v[0])
ordem.insert(0, u)