2009-06-05 13 views
1

In meinem Programm (ein Programm, das bei der Pfadfindung hilft), muss ich eine Liste speichern, die Einträge enthält, die aus einem Startknoten und einem Endknoten bestehen. Ein Wörterbuch funktioniert nicht, da ich nicht garantieren kann, dass der "Schlüssel" (ein Knoten natürlich) einzigartig ist. Was ist der beste Weg, um diese Art von Daten zu speichern? Edit: ich benutze C# und. Net 3.5.Wie man verwandte Daten speichert

Antwort

3

Sie könnten besser dran sein, einfach ein Array von Strukturen zu verwenden. Oder ein Vektor von Strukturen. Dies ermöglicht nicht eindeutige Knoten in Ihrer Liste. Vektoren sind eine Standardvorlage in C++, aber wenn C# dies nicht unterstützt, sollte ein Array funktionieren.

0

Wenn Ihre Sprache Ihrer Wahl Sätze unterstützt, suchen Sie nach einer Reihe von (Start-, Ende-) Tupeln.

+0

Hmm .... ich muss überprüfen, ob .net das unterstützt. – RCIX

+0

Sie können einen Satz auch emulieren, indem Sie ein Wörterbuch mit den (s.) Rändern als Schlüssel verwenden. Sie können die Werte entweder ignorieren oder zum Speichern nützlicher Informationen über die jeweiligen Kanten Ihres Diagramms verwenden. – Arkady

+0

Darn, .net unterstützt nicht wirklich Tupel oder Sets. Danke für die Idee! – RCIX

1

Wäre es möglich, eine Liste der KeyValuePair-Objekte zu verwenden? So was?

List<KeyValuePair<ObjectA, ObjectB>> list = new List<KeyValuePair<ObjectA, ObjectB>>(); 

Ich habe VS nicht vor mir gerade jetzt, also bin ich nicht sicher, ob ich die Syntax 100% Recht haben, aber hoffentlich das hilft.

+0

Das könnte funktionieren, aber was passiert, wenn ich 3 oder mehr Sätze verwandter Artikel speichern möchte? – RCIX

+0

In diesem Fall müssten Sie prüfen, ob Sie ein neues Objekt für die Liste implementieren möchten. – jasonh