Ich versuche, ein Problem zu lösen. Dieses Programm enthält alle Kanten in einem Diagramm. Der kürzeste Weg von der Quelle zum Ziel ist herauszufinden. Ich habe Funktion namens Dotest wie folgt.System.ArgumentOutOfRangeException: Das Argument liegt außerhalb des zulässigen Bereichs. Fehler in einem Algorithmus für den kürzesten Weg
public void dotest()
{
List<edge> tlist;
Int32 x;
setall();
Int32 ind;
foreach (edge e1 in alltest)
{
tlist = new List<edge>(alledge);
ind = 0;
foreach (edge e2 in tlist)
{
if (e2.s == e1.s && e2.d == e1.d)
{
break;
}
ind++;
}
tlist.RemoveAt(ind);
x=shortpath(tlist, start, destination);
if (x != -1)
Console.WriteLine("{0}", x);
else
Console.WriteLine("Infinity");
}
}
Beschreibung des obigen Codes. Der Code enthält bereits eine Liste der Rechte (alle Kanten oder Pfade). Ich habe eine Reihe von Eingaben, die eine Liste von zu schneidenden Kanten enthält, und ich muss den kürzesten Pfad der neuen aktualisierten Kantenliste finden. Ich habe meinen Testfall zusammengestellt und ein Teil des Testfalls funktioniert. Aber für einen Testfall gibt es eine Fehlermeldung als.
Nicht behandelte Ausnahme: System.ArgumentOutOfRangeException: Argument liegt außerhalb des Bereichs. Parametername: Index bei System.Collections.Generic.List
1[ch_2_3_27.Solution+edge].RemoveAt (Int32 index) [0x00000] in :0 at ch_2_3_27.Solution.dotest() [0x00000] in :0 at ch_2_3_27.Solution.Main (System.String[] args) [0x00000] in :0 [ERROR] FATAL UNHANDLED EXCEPTION: System.ArgumentOutOfRangeException: Argument is out of range. Parameter name: index at System.Collections.Generic.List
1 [ch_2_3_27.Lösung + Kante] .RemoveAt (Int32-Index) [0x00000] in: 0 bei ch_2_3_27.Solution.dotest() [0x00000] in: 0 bei ch_2_3_27.Solution.Main (System.String [] args) [0x00000] in: 0
ich kann wirklich nicht finden Fehler und ich denke, alle anderen Teile funktioniert. Kann mir jemand helfen ??
und EDGE (Kante) oben ist ein struct mit Mitgliedern s, d, w (Quelle, Ziel, Gewicht aller 32 Int)
Aber im obigen Code habe ich den bestimmten Index auf der Suche von tlist gefunden. Wie kommt es, dass es keinen Wert hat? – progrrammer
@ErBnAcharya Ich aktualisierte die Antwort mit extra Ausarbeitung und was wird den Code reparieren. –
Der Fehler wurde behoben, aber mein Algorithmus hat einen Fehler (ich denke), also ist die Antwort falsch. – progrrammer