Lekcja – Stopień grafu

```V = {
'P' : ['D1', 'D2', 'K', 'Q', 'H'],
'D1': ['D2', 'P'],
'D2': ['D1', 'P'],
'K' : ['P', 'Q', 'H'],
'Q' : ['P', 'K', 'H'],
'H' : ['P', 'K', 'Q']
}

def node_degree(V, node):

if node in V.keys():
return len(V[node])
else:
return -1

def graph_degree(V):

max_degree = 0

for n in V.keys():
degree = node_degree(V, n)
if degree > max_degree:
max_degree = degree

return max_degree

def graph_degree2(V):

return max( [ node_degree(V, n) for n in V.keys() ] )

print(f'Degree of P: {node_degree(V, "P")}')
for n in V.keys():
print(f'Degree of {n}: {node_degree(V, n)}')

print(f'Graph degree: {graph_degree(V)}')
print(f'Graph degree: {graph_degree2(V)}')```

Lab

```metro = {
'Staromestska' : ['Mustek'],
'Mustek' : ['Staromestska',  'Namesti Republiky', 'Muzeum', 'Narodni trida'],
'Muzeum' : [ 'Mustek', 'Hlavni nadrazi'],
'Narodni trida' : ['Mustek'],
'Namesti Republiky' : ['Mustek', 'Florenc'],
'Florenc': ['Namesti Republiky', 'Hlavni Nadrazi'],
'Hlavni nadrazi' : ['Florenc', 'Muzeum']
}

max_degree = 0
for station, neighbours in metro.items():
if len(neighbours) > max_degree:
max_degree = len(neighbours)
print('Max degree of the graph is:', max_degree)

print('Stations with degree =', max_degree)
for station, neighbours in metro.items():
if len(neighbours) == max_degree:
print(station)```