Input curN: the node (vertex) will be processed, oldN: the node has been already processed, |
newR: new network radius from this node, f: the original facility |
(1) neighList = curN.getNeighborList()/oldN |
(2) for each neighN in neighList do |
(3) edge = |
(4) if (edge not in finishedEdges) then |
(5) if (edge.length ≥ newR) then |
(6) create new node nN between curN and neighN, dist(curN, nN) = newR |
(7) newS = new segment(curN, nN, .weight, .Id) |
(8) insertSegment(edge, newS) |
(9) else |
(10) finishedEdge.add(edge) |
(11) newS = new segment(curN, neighN, .weight, .Id) |
(12) insertSegment(edge, news) |
(13) recursiveGenerateSegs(neighNode, curN, newR − edge.length, ) |
(14) end if |
(15) else |
(16) if (newR − edge.length > 0) then |
(17) recursiveGenerateSegs(neighNode, curN, newR − edge.length, ) |
(18) end if |
(19) end if |
(20) end for |