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; }