11.10.2013 Aufrufe

Algorithmen und Datenstrukturen Vorlesungsskript WS/SS 99-00

Algorithmen und Datenstrukturen Vorlesungsskript WS/SS 99-00

Algorithmen und Datenstrukturen Vorlesungsskript WS/SS 99-00

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

11. Graphen<br />

¯ Aufwand variiert von Ç Ò Ñ bis Ç Ò<br />

– im schlechtesten Fall gilt Ñ Ò<br />

– Ò falls Matrixdarstellung beteiligt (da Ò Elemente berücksichtigt werden<br />

müssen)<br />

Vergleich der Komplexität<br />

Operation Kanten- Knoten- Adjazenz- Adjazenzliste<br />

liste matrix liste<br />

Einfügen Kante Ç Ç Ò Ñ Ç Ç / Ç Ò<br />

Löschen Kante Ç Ñ Ç Ò Ñ Ç Ç Ò<br />

Einfügen Knoten Ç Ç Ç Ò Ç<br />

Löschen Knoten Ç Ñ Ç Ò Ñ Ç Ò Ç Ò Ñ<br />

Bemerkungen: Löschen eines Knotens löscht auch zugehörige Kanten, Aufwand bei Adjazenzmatrix<br />

bei Knoteneinfügung hängt von der Realisierung der Matrix ab, bei Adjazenzliste untercshiedlicher<br />

Aufwand falls Knotenliste als Array oder als verkettet Liste realisiert wird<br />

11.3. Ausgewählte Graphenalgorithmen<br />

¯ Breitendurchlauf<br />

¯ Tiefendurchlauf<br />

¯ Zyklenfreiheit<br />

¯ Topologisches Sortieren<br />

Breitendurchlauf<br />

204<br />

BFS(G,s):<br />

for each Knoten Ù Î ℄ ×<br />

do farbe[u]= weiß; d[u] = ; [u] = null ;<br />

farbe[s] = grau; d[s] = 0; [s] = null;<br />

Q = emptyQueue; Q = enqueue(Q,s);<br />

while not isEmpty(Q) do <br />

u = front(Q)<br />

for each v ZielknotenAusgehenderKanten(u) do <br />

if farbe(v) = weiß then<br />

farbe[v] = grau; d[v] = d[u]+1;<br />

[v] = u; Q = enqueue(Q,v); ;<br />

;<br />

dequeue(Q); farbe[u] = schwarz;

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!