private void fillDistanceMapUnweighted(Node[] theSortedArray) { for (Node aNode : theSortedArray) { for (Edge anEdge : aNode.getEachEnteringEdge()) { Node aSourceNode = anEdge.getSourceNode(); Node aTargetNode = anEdge.getTargetNode(); Double aMaxDistance = Math.max(distanceMap.get(aTargetNode), distanceMap.get(aSourceNode)) + 1; distanceMap.put(aTargetNode, aMaxDistance); } } }
public Collection<Edge> getEnteringEdgeSet() { ArrayList<Edge> l; Iterator<Edge> it; elementLock.lock(); sg.elementLock.lock(); l = new ArrayList<Edge>(wrappedElement.getInDegree()); it = wrappedElement.getEachEnteringEdge().iterator(); while (it.hasNext()) l.add(sg.getEdge(it.next().getIndex())); sg.elementLock.unlock(); elementLock.unlock(); return l; }
public Collection<Edge> getEnteringEdgeSet() { ArrayList<Edge> l; Iterator<Edge> it; elementLock.lock(); sg.elementLock.lock(); l = new ArrayList<Edge>(wrappedElement.getInDegree()); it = wrappedElement.getEachEnteringEdge().iterator(); while (it.hasNext()) l.add(sg.getEdge(it.next().getIndex())); sg.elementLock.unlock(); elementLock.unlock(); return l; }
private void getMaxNeigbourgh(Node theNode) { Node aMaxNode = null; double aMaxDistance = 0.0; for (Edge anEdge : theNode.getEachEnteringEdge()) { Node aSourceNode = anEdge.getSourceNode(); if (distanceMap.get(aSourceNode) >= aMaxDistance) { aMaxDistance = distanceMap.get(aSourceNode); aMaxNode = aSourceNode; } } if (aMaxNode != null) { longestPath.add(aMaxNode); getMaxNeigbourgh(aMaxNode); } }
private void fillDistanceMapWeighted(Node[] theSortedArray) { for (Node aNode : theSortedArray) { for (Edge anEdge : aNode.getEachEnteringEdge()) { Node aSourceNode = anEdge.getSourceNode(); Node aTargetNode = anEdge.getTargetNode(); double aWeight = anEdge.getNumber(getWeightAttribute()); Double aMaxDistance = Math.max(distanceMap.get(aTargetNode), distanceMap.get(aSourceNode) + aWeight); distanceMap.put(aTargetNode, aMaxDistance); } } }