Merge branch 'master' of https://git.etud.insa-toulouse.fr/rees/Graphes_REES_KOUTSODIMA
This commit is contained in:
		
						commit
						bd9d89eaf5
					
				
					 1 changed files with 16 additions and 3 deletions
				
			
		|  | @ -55,9 +55,19 @@ public class Path { | ||||||
|     public static Path createShortestPathFromNodes(Graph graph, List<Node> nodes) |     public static Path createShortestPathFromNodes(Graph graph, List<Node> nodes) | ||||||
|             throws IllegalArgumentException { |             throws IllegalArgumentException { | ||||||
|         List<Arc> arcs = new ArrayList<Arc>(); |         List<Arc> arcs = new ArrayList<Arc>(); | ||||||
|         Arc candidat = null; |         List<Node> nodes2 = nodes; | ||||||
|         Node deb = nodes.remove(0);  |         Arc candidat = null; //arc candidat à être le plus court entre deux nodes | ||||||
|         for(Node fin : nodes){ |          | ||||||
|  |         if(nodes.size()==0){ | ||||||
|  |             return new Path(graph); | ||||||
|  |         } | ||||||
|  |         else if(nodes.size()==1){ | ||||||
|  |             return new Path(graph,nodes.get(0)); | ||||||
|  |         } | ||||||
|  |         else{ | ||||||
|  |         Node deb = nodes2.get(0); | ||||||
|  |         for(Node fin : nodes2){ | ||||||
|  |             if(!fin.equals(deb)){ | ||||||
|             float dist = Float.MAX_VALUE; |             float dist = Float.MAX_VALUE; | ||||||
|             for(Arc a : deb.getSuccessors()){ |             for(Arc a : deb.getSuccessors()){ | ||||||
|                 if(a.getDestination().equals(fin)&&dist>a.getLength()){ |                 if(a.getDestination().equals(fin)&&dist>a.getLength()){ | ||||||
|  | @ -65,12 +75,15 @@ public class Path { | ||||||
|                     candidat=a; |                     candidat=a; | ||||||
|                 }  |                 }  | ||||||
|             } |             } | ||||||
|  |      | ||||||
|             if(dist==Float.MAX_VALUE){ |             if(dist==Float.MAX_VALUE){ | ||||||
|                     throw new IllegalArgumentException("Liste de noeuds non valide"); |                     throw new IllegalArgumentException("Liste de noeuds non valide"); | ||||||
|             } |             } | ||||||
|             arcs.add(candidat); |             arcs.add(candidat); | ||||||
|             deb = fin; |             deb = fin; | ||||||
|         } |         } | ||||||
|  |         } | ||||||
|  |         } | ||||||
|         return new Path(graph, arcs); |         return new Path(graph, arcs); | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
		Loading…
	
		Reference in a new issue