From 36e59323c89a95287a96b65f5ae050721a908d7e Mon Sep 17 00:00:00 2001 From: Nikolaus Krismer <nikolaus.krismer@uibk.ac.at> Date: Thu, 14 Aug 2014 13:42:46 +0200 Subject: [PATCH] reworked link expanding (needs less lists now) --- .../inf/isochrone/algorithm/Isochrone.java | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) diff --git a/src/main/java/it/unibz/inf/isochrone/algorithm/Isochrone.java b/src/main/java/it/unibz/inf/isochrone/algorithm/Isochrone.java index 01734eb6..6ef169d1 100644 --- a/src/main/java/it/unibz/inf/isochrone/algorithm/Isochrone.java +++ b/src/main/java/it/unibz/inf/isochrone/algorithm/Isochrone.java @@ -17,7 +17,6 @@ import java.util.Collection; import java.util.Collections; import java.util.HashSet; import java.util.LinkedHashSet; -import java.util.LinkedList; import java.util.Map; import java.util.Map.Entry; import java.util.PriorityQueue; @@ -165,9 +164,12 @@ public abstract class Isochrone { output.addNode(node); node.close(); - updateNodeQueue(expandLinks(node, adjacents)); + final NodeConnection nConnection = prepareLinkExpand(node, adjacents); + updateNodeQueue(expandContinuousLinks(nConnection)); addLinks(output, adjacents); + updateNodeQueue(expandDiscreteLinks(nConnection)); + if (qIsExpiring && node.isExpired()) { removeNode(nodeId); } @@ -215,10 +217,8 @@ public abstract class Isochrone { } } - private Collection<Node> expandLinks(final Node node, final Collection<Link> links) { - final Collection<Node> resultNodes = new LinkedList<>(); - - final NodeConnection nConnections = new NodeConnection(node); + private NodeConnection prepareLinkExpand(final Node node, final Collection<Link> links) { + final NodeConnection nConnection = new NodeConnection(node); for (final Link link : links) { final Node adjacentNode = getNode(link.getOppositeOf(node)); adjacentNode.visitNrAdjacentLinks((short) 1); @@ -242,14 +242,11 @@ public abstract class Isochrone { removeNode(adjacentNode.getId()); } } else { - nConnections.addTargetLink(adjacentNode, link); + nConnection.addTargetLink(adjacentNode, link); } } - resultNodes.addAll(expandContinuousLinks(nConnections)); - resultNodes.addAll(expandDiscreteLinks(nConnections)); - - return resultNodes; + return nConnection; } /** -- GitLab