Bonjour,

J'ai un algorithme identique qui utilise soit une queue soit une priority_queue et je voudrais généraliser cet algorithme pour qu'il fonctionne avec l'un ou l'autre des conteneurs. Voilà l'algo :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
Fonction solve(file f, Noeud initial)
     current : Noeud // type
 
     current <--- initial
     enfiler(current, f)
     TANT QUE (!vide(f))
           current <--- defiler(f) // récupère le 1er noeud de la file ou le noeud avec le cout le plus faible dans le cas de la priority_queue
           POUR CHAQUE (succ : findSuccessors(current))
                  enfiler(succ, f)
           FIN POUR
      FIN TANT QUE
FIN
Le problème est que dans le cas d'un queue pour défiler un Noeud, on utilise la fonction front() et dans le cas d'un priority_queue, elle s'appelle top() ... Y'a t-il un moyen de généraliser cette fonction solve à l'aide de template par exemple ? (je préfererais éviter de créer d'autres classes avec du polymorphisme pour résoudre ce problème si possible...)

J'espère que c'est clair

Merci d'avance