diff --git a/graph.go b/graph.go index ed090fa..6c35e83 100644 --- a/graph.go +++ b/graph.go @@ -84,23 +84,19 @@ func (g *AdjacencyList) RemoveEdge(u, v Vertex) { if v < u { u, v = v, u } + vertices, ok := g.edges[u] if !ok { return } - var ( - idx int = -1 - vtx Vertex - ) - for idx, vtx = range vertices { + + for idx, vtx := range vertices { if vtx == v { + // Remove the edge + g.edges[u] = append(vertices[:idx], vertices[idx+1:len(vertices)]...) break } } - if idx >= 0 { - // Remove the edge - g.edges[u] = append(vertices[:idx], vertices[idx+1:len(vertices)]...) - } } // VertexSlice is a convenience type for sorting vertices by ID. @@ -184,19 +180,14 @@ func (g *DirectedAdjacencyList) RemoveEdge(u, v Vertex) { if !ok { return } - var ( - idx int = -1 - vtx Vertex - ) - for idx, vtx = range vertices { + + for idx, vtx := range vertices { if vtx == v { + // Remove the edge + g.edges[u] = append(vertices[:idx], vertices[idx+1:len(vertices)]...) break } } - if idx >= 0 { - // Remove the edge - g.edges[u] = append(vertices[:idx], vertices[idx+1:len(vertices)]...) - } } func (g *DirectedAdjacencyList) AddVertex() Vertex {