Class | Relation |
In: |
Warshall.rb
|
Parent: | Object |
Klasse Relation dient zur Modellierung von Relationen, hierbei wird die Basismenge im Attribut @basis als Menge gehalten. Zur Basis gibt es eine Vorgänger- und eine Nachfolgeradjazenzliste (@vor und @nach). Diese sind als Ruby-Hashs von Mengen abgelegt, der Schlüssel ist jeweils das Element aus der Basis.
Konstruktor der Klasse Relation erhält ein Array von Paaren (ein Paar ist ein Array mit zwei Elementen). Für @vor und @nach werden neue Hashs angelegt. Die Basis wird anhand des übergegebenen Parameters (rel) berechnet. Die Vorgänger und Nachfolger werden nun anhand der Basis und rel berechnet.
Prüft Gleichheit zweier Relationen, dabei wird überprüft ob die Relation (Parameter) nil ist.
Komposition zweier Relationen, dabei werden die Basen zusammengefasst und danach über die entstandene Basis iteriert. Dabei werden die Vorgänger und Nachfolger aus beiden Relationen neu berechnet.
Lädt das Objekt Relation von der Harddisk mit Dateiname als Parameter mittels Marshall
Speichert das Objekt Relation auf der Harddisk mit Dateiname als Parameter mittels Marshall
Konvertiert die Relation in einen String.
Bsp.: [[1,2],[2,3],[3,4],[2,5]]
"Basismenge:
{ 1,2,3,4,5 }
Adjazenzliste (Vorgaenger):
5{ 2 }1{ }2{ 1 }3{ 2 }4{ 3 }
Adjazenzliste (Nachfolger):
5{ }1{ 2 }2{ 3,5 }3{ 4 }4{ }"