Profil supprimé | reelooz10 a écrit :
Le mieux c'est de faire les commentaires toi même pour voir si t'as compris, et après, tu postes pour qu'on les check.
|
Code :
- // implementation de l'interface Map par l'utilisation de table hachee (HashMap qui sert à retirer retirer les iterations à chaque ville parcourue
- //definition ville de depart (paris) et ville d'arrivee en parametre in the main
- import java.util.HashSet;
- import java.util.HashMap;
- import java.util.Map.Entry;
- public class Heuristique{
- public static void main(String[] args)
- {
- Heuristique heuristique = new Heuristique();
- int Totale = heuristique.displayVoyageV1("Paris","Paris", heuristique.getVilles());
- System.out.println("La distance parcourue est: " + Totale + "kms" );
- }
- private HashMap<String, Ville> city;
- //methodes pour saisie ville actuelle, calcul/recherche ville la plus proche, retour de la disttance et calcul de la prochaine ville jusqu'a faire le tour
- //
- public HashMap<String,Ville> getVilles()
- {
- return this.city;
- }
- public int displayVoyageV1(String name, String arrive, HashMap<String,Ville> VilleNonParcourue)
- {
- int portee;
- int min = Integer.MAX_VALUE;
- String prochaineVille = null;
- for(Entry<String, Ville> entry : VilleNonParcourue.entrySet())
- {
- Ville value = entry.getValue();
- portee = value.getPorteeTo(name);
- if(portee > 0 && portee < min && (!arrive.equals(value.getName()) || VilleNonParcourue.size() <= 1))
- {
- min = portee;
- prochaineVille = value.getName();
- }
- }
- if(prochaineVille != null)
- {
- VilleNonParcourue.remove(prochaineVille);
- System.out.println(name + " -> " + prochaineVille + " = " + min + "km" );
- return min + displayVoyageV1(prochaineVille,arrive,VilleNonParcourue);
- }
- return 0;
- }
- // declaration matrice diagonale
- int[][] matrice = new int[7][7];
- /*public int displayVoyageV2(int i, int j)
- {
-
-
- }*/
- /*instanciation des villes et initialisation de la matrice distance sauf pour la ville en question
- implementation des methodes put et get pour les differentes distances */
- public Heuristique()
- {
- city = new HashMap<String,Ville>();
- Ville angers = new Ville("Angers" );
- angers.addPortee("Bordeaux",335);
- angers.addPortee("Clermond",402);
- angers.addPortee("Montpellier",692);
- angers.addPortee("Nice",999);
- angers.addPortee("Paris",303);
- angers.addPortee("Strasbourg",742);
- city.put(angers.getName(),angers);
- Ville bordeaux = new Ville("Bordeaux" );
- bordeaux.addPortee("Angers",335);
- bordeaux.addPortee("Clermond",369);
- bordeaux.addPortee("Montpellier",499);
- bordeaux.addPortee("Nice",844);
- bordeaux.addPortee("Paris",561);
- bordeaux.addPortee("Strasbourg",958);
- city.put(bordeaux.getName(),bordeaux);
- Ville clermond = new Ville("Clermond" );
- clermond.addPortee("Angers",402);
- clermond.addPortee("Bordeaux",369);
- clermond.addPortee("Montpellier",367);
- clermond.addPortee("Nice",620);
- clermond.addPortee("Paris",425);
- clermond.addPortee("Strasbourg",574);
- city.put(clermond.getName(), clermond);
- Ville montpellier = new Ville("Montpellier" );
- montpellier.addPortee("Angers",692);
- montpellier.addPortee("Bordeaux",499);
- montpellier.addPortee("Clermond",367);
- montpellier.addPortee("Nice",345);
- montpellier.addPortee("Paris",763);
- montpellier.addPortee("Strasbourg",727);
- city.put(montpellier.getName(),montpellier);
- Ville nice = new Ville("Nice" );
- nice.addPortee("Angers",999);
- nice.addPortee("Bordeaux",844);
- nice.addPortee("Clermond",620);
- nice.addPortee("Montpellier",345);
- nice.addPortee("Paris",950);
- nice.addPortee("Strasbourg",842);
- city.put(nice.getName(),nice);
- Ville paris = new Ville("Paris" );
- paris.addPortee("Angers",303);
- paris.addPortee("Bordeaux",561);
- paris.addPortee("Clermond",425);
- paris.addPortee("Montpellier",763);
- paris.addPortee("Nice",950);
- paris.addPortee("Strasbourg",448);
- city.put(paris.getName(),paris);
- Ville strasbourg = new Ville("Strasbourg" );
- strasbourg.addPortee("Angers",742);
- strasbourg.addPortee("Bordeaux",958);
- strasbourg.addPortee("Clermond",574);
- strasbourg.addPortee("Montpellier",727);
- strasbourg.addPortee("Nice",842);
- strasbourg.addPortee("Paris",448);
- city.put(strasbourg.getName(),strasbourg);
- }
- }
|
Code :
- // classe Ville
- import java.util.HashSet;
- import java.util.HashMap;
- import java.util.Map.Entry;
- public class Ville
- {
- private HashMap<String,Integer> portees;
- private String name;
- //mutateurs pour ajout des distances, determination de la cle des villes si elle existe, puis recherche nom ville sa distance dans HashMap et retour du nom.
- public void addPortee(String ville,Integer portee)
- {
- this.portees.put(ville,portee);
- }
- public Integer getPorteeTo(String ville)
- {
- if(this.portees.containsKey(ville))
- {
- return this.portees.get(ville);
- }
- return -1;
- }
- public Ville(String name)
- {
- this.name = name;
- this.portees = new HashMap<String,Integer>();
- }
- public String getName()
- {
- return this.name;
- }
- }
|
|