Thread Adjazenzlisten als Hash oder als Array? (15 answers)
Opened by pktm at 2009-04-19 11:57

murphy
 2009-04-19 15:01
#120733 #120733
User since
2004-07-19
1776 Artikel
HausmeisterIn
[Homepage]
user image
Ich finde, das kommt ganz darauf an, welche Informationen zu dem Zeitpunkt, zu dem man die Nachbarn eines Knoten bestimmen will, bereitstehen und was man mit der Information über die Nachbarknoten anfangen will.

Wenn zum Beispiel jeder Knoten ein Objekt ist und man zum Zeitpunkt der Abfrage bereits eine Referenz auf das Objekt hat, würde ich die Nachbarn weder in einem Array noch in einem Hash sondern in einem Feld des Knotenobjektes speichern. Wenn man die Knoten durchnummeriert hat und per Index auf sie zugreift, würde ich ein Array benutzen und ansonsten eher einen Hash.

Wenn man zu einem Knoten alle Nachbarn ermitteln will, reicht es, diese als Liste geliefert zu bekommen. Wenn man Beziehungen zwischen Knoten testen will, wäre eventuell ein Hash mit Nachbarn als Schlüssel nützlich. Um lediglich zu testen ob zwei Knoten benachbart sind, braucht man überhaupt keinen vollen Satz von Nachbarn sondern kann einmal in die eine und einmal in die andere Richtung prüfen ob einer der Knoten ein Kind des anderen ist.
When C++ is your hammer, every problem looks like your thumb.

View full thread Adjazenzlisten als Hash oder als Array?