Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def remove_edge(G,edge):
- v = vertices(G)
- G[v[edge[0]]].remove(v[edge[1]])
- G[v[edge[1]]].remove(v[edge[0]])
- def add_edge(G,edge):
- v = vertices(G)
- G[v[edge[0]]].append(v[edge[1]])
- G[v[edge[1]]].append(v[edge[0]])
- def get_bridges(G):
- V =vertices(G)
- bridges = []
- my_edges = edges(G)
- for edge in my_edges:
- print(edge)
- remove_edge(G,edge) #ERROR HERE <-------------------------------------------
- BFS(G,edge[0])
- if G[V [edge[1]]].distance == INFINITY:
- bridges.append(edge)
- clear(G)
- add_edge(edge)
- return bridges
- def no_cycles(G):
- V = vertices(G)
- no_cycles = True
- for s in V: #begin elke keer bij andere node
- clear(G)
- s.visited = True
- s.predecessor = None
- for v in V: # iedereen attribuut 'visited'
- if v != s:
- v.visited = False
- v.predecessor = None
- q = myqueue()
- q.enqueue(s)
- while q:
- u = q.dequeue()
- for v in G[u]:
- #print (u, ':', v, end=', ')
- if v != u.predecessor: # v is niet waar die van daar komt
- if not v.visited:
- v.visited = True
- v.predecessor = u
- q.enqueue(v)
- else:
- #print("FALSE", end= ' ')
- no_cycles = False
- return no_cycles
- if __name__ == '__main__':
- v4 = [Vertex(i) for i in range(8)]
- G4 = {v4[0]:[v4[1],v4[3]],
- v4[1]:[v4[0],v4[2]],
- v4[2]:[v4[1],v4[3],v4[4]],
- v4[3]:[v4[0],v4[2]],
- v4[4]:[v4[2],v4[5],v4[6]],
- v4[5]:[v4[4],v4[6]],
- v4[6]:[v4[4],v4[5],v4[7]],
- v4[7]:[v4[6]]}
- print(edges(G4))
- remove_edge(G4,(7,6))
- print(edges(G4))
- add_edge(G4,(7,6))
- print(edges(G4))
- print(get_bridges(G4))
- ERROR MSG :
- Ik snap niet hoe, ik roep ze precies op de zelfde manier aan.
- Traceback (most recent call last):
- File "C:\DATA\Study Jaar 2\Algoritmen & Datastructuren\Practicum\Week 5\Opdracht 5.3.py", line 183, in <module>
- print(get_bridges(G4))
- File "C:\DATA\Study Jaar 2\Algoritmen & Datastructuren\Practicum\Week 5\Opdracht 5.3.py", line 124, in get_bridges
- remove_edge(G,(edge))
- File "C:\DATA\Study Jaar 2\Algoritmen & Datastructuren\Practicum\Week 5\Opdracht 5.3.py", line 110, in remove_edge
- G[v[edge[0]]].remove(v[edge[1]])
- TypeError: list indices must be integers or slices, not Vertex
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement