From 8a93f9f70a0b0d4b5c07a6fd7691ee3cd5ea8737 Mon Sep 17 00:00:00 2001 From: Eric Chlebek Date: Wed, 23 Jul 2014 23:11:27 -0700 Subject: [PATCH] Simplify RemoveEdge. --- graph.go | 27 +++++++++------------------ 1 file changed, 9 insertions(+), 18 deletions(-) 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 {