I was trying to implement a graph using the two classes Edge and Vertex.
I don't know why when I add an exiting vertex to A it also happens to belong to H's exiting vertices.
The final print statement prints out "AE" while it shouldn't print anything.
Why is this thing happening?
class Edge:
def __init__(self,endp_1,endp_2,weight):
self.endp_1=endp_1
self.endp_2=endp_2
self.weight=weight
def __str__(self):
return str(self.endp_1)+str(self.endp_2)
class Vertex:
def __init__(self,name,exiting_edges=[],cost=float("inf")):
self.name=name
self.exiting_edges=exiting_edges
self.cost=cost
def add_exiting_edge(self,vertex,weight):
self.exiting_edges.append(Edge(self,vertex,weight))
def __str__(self):
return self.name
A=Vertex("A")
B=Vertex("B")
C=Vertex("C")
D=Vertex("D")
E=Vertex("E")
F=Vertex("F")
G=Vertex("G")
H=Vertex("H")
vertices=[A,B,C,D,E,F,G,H]
A.add_exiting_edge(E,12)
for edge in H.exiting_edges:
print(edge)