예제 #1
0
 public abstract double GetArcCost(GenericNode N2);
예제 #2
0
 // Méthodes abstrates, donc à surcharger obligatoirement avec override dans une classe fille
 public abstract bool IsEqual(GenericNode N2);
예제 #3
0
        protected List <GenericNode> Enfants; // noeuds enfants

        public GenericNode()
        {
            ParentNode = null;
            Enfants    = new List <GenericNode>();
        }
예제 #4
0
 public void SetNoeud_Parent(GenericNode g)
 {
     ParentNode = g;
     g.Enfants.Add(this);
 }
예제 #5
0
        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;
            }
        }