Skip to content

Commit c271e58

Browse files
authored
fully isolate deleted node from neighbors before replenishing connections (#14)
1 parent 41f4a36 commit c271e58

File tree

1 file changed

+5
-2
lines changed

1 file changed

+5
-2
lines changed

graph.go

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -178,6 +178,9 @@ func (n *layerNode[K]) replenish(m int) {
178178
func (n *layerNode[K]) isolate(m int) {
179179
for _, neighbor := range n.neighbors {
180180
delete(neighbor.neighbors, n.Key)
181+
}
182+
183+
for _, neighbor := range n.neighbors {
181184
neighbor.replenish(m)
182185
}
183186
}
@@ -487,7 +490,7 @@ func (h *Graph[K]) Delete(key K) bool {
487490
return false
488491
}
489492

490-
var deleteLayer = map[int]struct{}{}
493+
deleteLayer := map[int]struct{}{}
491494
var deleted bool
492495
for i, layer := range h.layers {
493496
node, ok := layer.nodes[key]
@@ -503,7 +506,7 @@ func (h *Graph[K]) Delete(key K) bool {
503506
}
504507

505508
if len(deleteLayer) > 0 {
506-
var newLayers = make([]*layer[K], 0, len(h.layers)-len(deleteLayer))
509+
newLayers := make([]*layer[K], 0, len(h.layers)-len(deleteLayer))
507510
for i, layer := range h.layers {
508511
if _, ok := deleteLayer[i]; ok {
509512
continue

0 commit comments

Comments
 (0)