Algo de dijkstra et langage C

Ginolam1froide Messages postés 1 Date d'inscription mercredi 12 avril 2006 Statut Membre Dernière intervention 13 avril 2006 - 13 avril 2006 à 00:31
Guillemouze Messages postés 991 Date d'inscription samedi 25 octobre 2003 Statut Membre Dernière intervention 29 août 2013 - 14 avril 2006 à 00:01
salut a tous !!

j'ai un projet à faire en langage C qui doit permettre de trouver le plus court chemin entre deux aéroports.
on choisit un avion (avec les caractéristiques qui vont avec), un aéroport de départ et un d'arrivée et si le trajet n'est pas possible en une fois il faut définir les escales telles que le chemin soit le plus court (en distance) entre les deux aéroports (départ et arrivée)... et le tout en tenant compte des horaires d'ouvertures des aéroports...

bon j'ai lu pas mal de trucs sur ce site concernant l'algo de dijkstra, mais mon problème c'est que je suis pas super bon en C et que je n'ai jamais eu de cours d'algo, donc je comprends pas tout...

donc en gros je voudrais avoir des conseils sur des sites qui me permettraient d'apprendre rapidement à construire mon algorithme pour mon programme...
j'entends par là que je compte bien m'y mettre tranquillement pour apprendre l'algo et le langage C, mais là j'aurais besoin rapidement de comprendre les bases nécessaires pour mettre moi-même au point mon code...

vous pensez que c'est désespéré ?? ou c'est faisable ??
et si c'est faisable que me conseillez-vous comme sites ou comme méthode pour y arriver...
je suis motivé mais à court de temps pour tout apprendre de A à Z sur l'algo et le langage C avant de pouvoir faire mon code... donc si vous avez des conseils ils seront plus que les bienvenus

merci d'avance à tous ceux qui auront un peu de compassion envers un pti novice

1 réponse

Guillemouze Messages postés 991 Date d'inscription samedi 25 octobre 2003 Statut Membre Dernière intervention 29 août 2013 6
14 avril 2006 à 00:01
alors si jme rappele bien de l'algo, ca doit donner un truc du genre:

si tu as n aeroports

#define nb_aeroport 10 //si tu as 10 aeroports

int parent[nb_aeroport];
int next[nb_aeroport];

main() {
int i;
//la tu cree ta matrice du graph

//tu initialise les aeroports parcourus
for(i=0; i<nb_aeroport; i++)
parent[i] = -1;
//tu choisi ton aeroport de depart (par ex le numero 3)
parent[3] = -2;
courant = 3;
//celui d'arrivee (le 5 par ex)
arrivee = 5;
//et tu avance pas a pas
while ((!found) && (hasNext())) {
for (i=0; i< nb_aeroport; i++) {
if isSucc(courant, i) {
ajouterAuNext(i)
parent[i] = courant; if (i arrivee) found true;
}
}

//et la tu parcours les parent a partir de l'arrivee ,ca te donne le chemin inverse
}

hasNext verifie si il y a au moins un aeroport dans les next
0
Rejoignez-nous