-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathL1_A.py
78 lines (75 loc) · 1.92 KB
/
L1_A.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
'''
1.matrice de adiacenta pt un graf o/no
2.liste de adiacenta pt un graf o/n
3. trecere de la una la alta
-> nu am param care sa specifice daca e o/no
-> nu am subprogram de afisare a matricei/listei
citit din fisierul graf.in
'''
f=open("graf.in")
line=f.readline()
v=line.split()
#pe prima linie nr noduri si nr muchii
n=int(v[0])
m=int(v[1])
# 1 matrice de adiacenta
def Matrice(muchii, noduri):
matrice=[]
for i in range (noduri):
m=[]
for j in range(noduri):
m.append(0)
matrice.append(m)
for i in range(muchii):
line=f.readline()
v=line.split()
matrice[int(v[0])-1][int(v[1])-1]=1
matrice[int(v[1])-1][int(v[0])-1] = 1
return matrice
matrice=Matrice(m,n)
f.close()
f=open("graf.in")
line=f.readline()
v=line.split()
#pe prima linie nr noduri si nr muchii
n=int(v[0])
m=int(v[1])
# 2 lista de adiacenta
def Liste(muchii, noduri):
l={}
for i in range(1,noduri+1):
l[i]=[]
for i in range(muchii):
line=f.readline()
v=line.split()
l[int(v[0])].append(int(v[1]))
l[int(v[1])].append(int(v[0]))
return l
lista=Liste(m,n)
f.close()
# 3 trecere de la una la alta
def trec_ML(matrice, noduri):
lista={}
for i in range(1,noduri+1):
lista[i]=[]
for i in range(noduri):
for j in range(noduri):
if matrice[i][j]==1:
lista[i+1].append(j+1)
lista[j+1].append(i+1)
return lista
print(trec_ML(matrice,n))
def trec_LM(lista, noduri):
matrice=[]
for i in range(noduri):
m=[]
for j in range(noduri):
m.append(0)
matrice.append(m)
for i in range(1,noduri+1):
v=lista[i]
for x in v:
matrice[i-1][x-1]=1
matrice[x-1][i-1]=1
return matrice
print(trec_LM(lista,n))