public abstract double GetArcCost(GenericNode N2);
// Méthodes abstrates, donc à surcharger obligatoirement avec override dans une classe fille public abstract bool IsEqual(GenericNode N2);
protected List <GenericNode> Enfants; // noeuds enfants public GenericNode() { ParentNode = null; Enfants = new List <GenericNode>(); }
public void SetNoeud_Parent(GenericNode g) { ParentNode = g; g.Enfants.Add(this); }
public void CalculerEtapeSuivante(ref List <GenericNode> L_Ouverts, ref List <GenericNode> L_Fermes, ref GenericNode N) { // Le meilleur noeud des ouverts est supposé placé en tête de liste // On le place dans les fermés L_Ouverts.Remove(N); L_Fermes.Add(N); // Il faut trouver les noeuds successeurs de N this.MAJSuccesseurs(N); // Inutile de retrier car les insertions ont été faites en respectant l'ordre // On prend le meilleur, donc celui en position 0, pour continuer à explorer les états // A condition qu'il existe bien sûr if (L_Ouverts.Count > 0) { N = L_Ouverts[0]; } else { N = null; } }