private CVerbindung ErmittleKürzesteVerbindung(ArrayList verbindungen, CKnote aktiverKnote, ArrayList knoten)
 {
     CVerbindung tmpVerbindung = null;
     foreach (CVerbindung verbindung in verbindungen)
         foreach (CKnote knote in ErmittleOffeneKnoten(aktiverKnote, new ArrayList(knoten), new ArrayList(verbindungen)))
             if (verbindung.GetStart().GetName() == aktiverKnote.GetName() && verbindung.GetStopp().GetName() == verbindung.GetStopp().GetName())
                 if (tmpVerbindung == null || verbindung.GetWert() < tmpVerbindung.GetWert()) tmpVerbindung = verbindung;
     return tmpVerbindung;
 }
        private void SetKnotenWert(CKnote knote, int wert, ref ArrayList knoten, ref ArrayList verbindungen)
        {
            foreach (CKnote knt in knoten)
                if (knt == knote) knt.SetKnotenWert(wert);

            foreach (CVerbindung verbindung in verbindungen)
                if (verbindung.GetStopp() == knote) verbindung.GetStopp().SetKnotenWert(wert);
        }
        private void SetState(CKnote knote, ref ArrayList knoten, ref ArrayList verbindungen, string state)
        {
            foreach (CKnote knt in knoten)
                if (knt == knote)
                    knt.SetState(state);

            foreach (CVerbindung verb in verbindungen)
            {
                if (verb.GetStart() == knote) verb.GetStart().SetState(state);
                if (verb.GetStopp() == knote) verb.GetStopp().SetState(state);
            }
        }
 private ArrayList ErmittleOffeneKnoten(CKnote aktivenKnoten, ArrayList knoten, ArrayList verbindungen)
 {
     ArrayList rtn = new ArrayList();
     foreach (CKnote knote in knoten)
         if (knote.GetState() == "offen")
             foreach (CVerbindung verbindung in verbindungen)
                 if (verbindung.GetStart() == aktivenKnoten)
                     if (verbindung.GetStopp() == knote)
                         rtn.Add(knote);
     return rtn;
 }