03.11.2013 Aufrufe

SMALLTALK K1ex127-.45ex51275ahler/Bothner

SMALLTALK K1ex127-.45ex51275ahler/Bothner

SMALLTALK K1ex127-.45ex51275ahler/Bothner

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

312 15 Programmierung von Suchverfahren<br />

Dieses Verfahren hat den Nachteil, daß in dem Fall, in dem bereits eine IC-Verbindung<br />

festgestellt werden kann, weitere Methodenaufrufe aktiviert werden, obwohl<br />

dies nicht erforderlich ist.<br />

Deshalb wollen wir die Strategie, stets alle Objekte eines Nachfolger-Sammlers<br />

gleichzeitig zu expandieren und durch ihre Nachfolger zu ersetzen, wie folgt – in<br />

Form einer Breitensuche – modifizieren:<br />

verbindungBreiten:<br />

Bilde den geordneten Nachfolger−Sammler, der nur den Abfahrtsort enthält<br />

verbindungBreiten:rek:<br />

verbindungBreiten: rek:<br />

true<br />

"keine<br />

IC−Verb"<br />

Nachfolger−Sammler ist leer?<br />

false<br />

Ankunftsort ist identisch mit 1. Objekt im<br />

true Nachfolger−Sammler?<br />

false<br />

"IC−Verb<br />

existiert"<br />

verbindungBreiten: (self nachfolgerBreiten: nachfolgerSammler) rek: ankunft<br />

nachfolgerBreiten:<br />

Füge die direkten Nachfolger des 1. Objekts dem Nachfolger−Sammler am Ende an<br />

Lösche das 1. Objekt aus dem Nachfolger−Sammler<br />

Abbildung 15.8: Struktogramme für die Breitensuche<br />

Die Ausführung der Breitensuche läßt sich z.B. für die Anfrage, ob eine IC-Verbindung<br />

zwischen “Ham” und “Mue” besteht, folgendermaßen graphisch veranschaulichen:<br />

.<br />

.<br />

Kar<br />

.<br />

.<br />

Koe<br />

.<br />

.<br />

Ham<br />

m1. m 2. m 3.<br />

m4. m 5. m 6.<br />

Mai<br />

. .<br />

Ful<br />

. .<br />

Mue<br />

. .<br />

Ber<br />

Nachfolger-Sammler:<br />

a) (Ham)<br />

b) (Koe Ful Ber)<br />

c) (Ful Ber Kar Mai)<br />

d) (Ber Kar Mai Mue)<br />

e) (Kar Mai Mue Dre)<br />

f) (Mai Mue Dre Stu)<br />

g) (Mue Dre Stu Fra)<br />

Hinweis: Bei der Angabe der Nachfolger-Sammler haben wir nicht nur deren Reihenfolge<br />

angegeben, sondern zusätzlich bestimmte Objekte unterstrichen. Diese Objekte stellen<br />

die direkten Nachfolger derjenigen Objekte dar, die im unmittelbar vorausgehenden<br />

Nachfolger-Sammler die jeweils erste Position einnehmen.<br />

Bei der Umsetzung der Struktogramme vereinbaren wir die Methode “nachfolger-<br />

Breiten:” durch<br />

nachfolgerBreiten: sammlerVonStationen<br />

| erstesOb |

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!