#BlueJ class context comment0.target=Graph comment0.text=\n\ Dies\ ist\ das\ Herz\ vom\ "GraphTester"\ -\ der\ Graph\ selber,\ gepeichert\ als\ Adjazenzliste.\n\ Die\ Klasse\ erlaubt\ durch\ geeignete\ Methoden\:\n\ -\ die\ Speicherung\ als\ Adjazenzmatrix,\n\ -\ das\ Hinzufuegen\ und\ Loeschen\ von\ knoten\ und\ Kanten,\n\ -\ das\ Markieren\ von\ Knoten\ und\ Kanten,\n\ -\ eine\ Aussage\ darueber,\ ob\ Knoten\ oder\ Kanten\ enthalten\ sind\ und\n\ -\ eine\ Ausgabe\ des\ Graphen\ in\ textueller\ Form\ sowie\ als\ csv-Datei.\n\ \n\ \n\ @author\ Dirk\ Zechnall,\ Thomas\ Schaller\n\ @version\ 31.01.2021\ (v6.5)\n comment1.params=isGerichtet\ isGewichtet comment1.target=Graph(boolean,\ boolean) comment1.text=\n\ Der\ Konstruktor\ erstellt\ einen\ neuen\ Graphen\ (genauer\ eine\ neue\ Adjazenzliste)\n\ @param\ isGerichtet\ gibt\ an,\ ob\ es\ sich\ um\ einen\ gerichteten\ Graphen\ handelt\n\ @param\ isGewichtet\ gibt\ an,\ ob\ die\ Kanten\ gewichtet\ sind.\n comment10.params=k comment10.target=int\ getNummer(Kante) comment10.text=\ Gibt\ die\ Nummer\ einer\ Kante\ zur\u00FCck\n\ @param\ \ k\ gesuchte\ Kante\n\ @return\ Nummer\ der\ Kante\ (mit\ 0\ beginnend)\n comment11.params= comment11.target=double[][]\ getAdjazenzMatrix() comment11.text=\n\ Die\ Methode\ getAdjazenzMatrix()\ gibt\ die\ Adjazenzmatrix\ zurueck.\n\ \n\ @return\ \ double[][]\ Die\ AdjazenzMatrix\ als\ zweidimensionales\ Array\n comment12.params=filter comment12.target=java.util.List\ getAlleKanten(java.util.function.Predicate[]) comment12.text=\n\ Gibt\ eine\ Liste\ aller\ Kanten\ des\ Graphen\ zur\u00FCck.\n\ @param\ \ \ filter\ \ \ \ \ \ \ \ \ optionaler\ Filter,\ der\ auf\ die\ Liste\ angewendet\ wird.\ Er\ muss\ einen\ boolean-Wert\ zur\u00FCckgeben\:\ z.B.\ @literal{k->k.isMarkiert()\ &&\ k.isBesucht()}\n\ @return\ Liste\ aller\ Kanten\n comment13.params= comment13.target=void\ entferneMarkierungBeiAllenKnoten() comment13.text=\n\ Entfernt\ die\ Markierung\ bei\ allen\ Knoten\ des\ Graphen.\n comment14.params= comment14.target=void\ initialisiereAlleKnoten() comment14.text=\n\ Initialisiert\ alle\ Knoten\ des\ Graphen.\n comment15.params= comment15.target=void\ initialisiereAlleKanten() comment15.text=\n\ Initialisiert\ alle\ Kanten\ des\ Graphen.\n comment16.params=k comment16.target=boolean\ isKnotenEnthalten(Knoten) comment16.text=\n\ Ueberprueft,\ ob\ ein\ Knoten\ in\ der\ Knotenliste\ enthalten\ ist.\n\ Sobald\ in\ der\ Knotenliste\ der\ Knoten\ k\ gefunden\ wird,\ wird\ true\ ausgegeben.\n\ \n\ @param\ \ k\ \ Der\ gesuchte\ Knoten\n\ @return\ \ true\=\ ist\ enthalten,\ false\ \=\ ist\ nicht\ enthalten\n comment17.params= comment17.target=int\ getAnzahlKnoten() comment17.text=\n\ Gibt\ die\ Anzahl\ der\ Knoten\ im\ Graph\ zurueck\n\ \n\ @return\ \ Anzahl\ der\ Knoten\n comment18.params=filter comment18.target=java.util.List\ getAlleKnoten(java.util.function.Predicate[]) comment18.text=\n\ Gibt\ eine\ Liste\ aller\ Knoten\ des\ Graphen\ zurueck.\ \n\ @param\ \ \ filter\ \ \ \ \ \ \ \ \ optionaler\ Filter,\ der\ auf\ die\ Liste\ angewendet\ wird.\ Er\ muss\ einen\ boolean-Wert\ zur\u00FCckgeben\:\ z.B.\ @literal{k->k.isMarkiert()\ &&\ k.isBesucht()}\n\ @return\ \ Die\ Knotenliste.\ Falls\ leer\ wird\ eine\ leere\ Liste\ \ zurueckgegeben\n comment19.params=k\ filter comment19.target=java.util.List\ getNachbarknoten(Knoten,\ java.util.function.Predicate[]) comment19.text=\n\ Gibt\ die\ Liste\ aller\ Nachbarknoten\ eines\ Knotens\ k\ zurueck,\ falls\ k\ in\ der\ Knotenliste\ vorhanden\ ist.\ \n\n\ @param\ \ \ k\ \ \ \ Der\ Knoten,\ zu\ dem\ die\ Adjazenzliste\ gesucht\ wird\n\ @param\ \ \ filter\ \ \ \ \ \ \ \ \ optionaler\ Filter,\ der\ auf\ die\ Liste\ angewendet\ wird.\ Er\ muss\ einen\ boolean-Wert\ zur\u00FCckgeben\:\ z.B.\ @literal{k->k.isMarkiert()\ &&\ k.isBesucht()}\n\ @return\ \ Liste\ der\ Nachbarknoten\n comment2.params= comment2.target=Graph() comment2.text=\n\ Der\ Konstruktor\ erstellt\ einen\ neuen\ ungerichteten,\ ungewichteten\ Graphen\ (genauer\ eine\ neue\ Adjazenzliste)\n comment20.params=k\ filter comment20.target=java.util.List\ getAusgehendeKanten(Knoten,\ java.util.function.Predicate[]) comment20.text=\n\ Gibt\ eine\ Liste\ der\ ausgehenden\ Kanten\ eines\ Knotens\ k\ zurueck,\ falls\ k\ in\ der\ Knotenliste\ vorhanden\ ist.\ \n\ Bei\ ungerichteten\ Graphen\ wird\ nicht\ zwischen\ eingehenden\ und\ ausgehenden\ Kanten\ \n\ unterschieden.\n\n\ @param\ \ \ k\ \ \ \ Der\ Knoten,\ zu\ dem\ die\ Kanten\ gesucht\ werden\n\ @param\ \ \ filter\ \ \ \ \ \ \ \ \ optionaler\ Filter,\ der\ auf\ die\ Liste\ angewendet\ wird.\ Er\ muss\ einen\ boolean-Wert\ zur\u00FCckgeben\:\ z.B.\ @literal{k->k.isMarkiert()\ &&\ k.isBesucht()}\n\ @return\ \ Liste\ der\ ausgehenden\ Kanten.\n comment21.params=knotennr\ filter comment21.target=java.util.List\ getAusgehendeKanten(int,\ java.util.function.Predicate[]) comment21.text=\n\ Gibt\ eine\ Liste\ der\ ausgehenden\ Kanten\ eines\ Knotens\ k\ zurueck,\ falls\ k\ in\ der\ Knotenliste\ vorhanden\ ist.\ \n\ Bei\ ungerichteten\ Graphen\ wird\ nicht\ zwischen\ eingehenden\ und\ ausgehenden\ Kanten\ \n\ unterschieden.\n\n\ @param\ \ \ knotennr\ \ \ \ Nummer\ des\ Knoten,\ zu\ dem\ die\ Kanten\ gesucht\ werden\n\ @param\ \ \ filter\ \ \ \ \ \ \ \ \ optionaler\ Filter,\ der\ auf\ die\ Liste\ angewendet\ wird.\ Er\ muss\ einen\ boolean-Wert\ zur\u00FCckgeben\:\ z.B.\ @literal{k->k.isMarkiert()\ &&\ k.isBesucht()}\n\ @return\ \ Liste\ der\ ausgehenden\ Kanten.\n comment22.params=knotennr\ filter comment22.target=java.util.List\ getEingehendeKanten(int,\ java.util.function.Predicate[]) comment22.text=\n\ Gibt\ eine\ Liste\ der\ eingehenden\ Kanten\ eines\ Knotens\ k\ zurueck,\ falls\ k\ in\ der\ Knotenliste\ vorhanden\ ist.\ \n\ Bei\ ungerichteten\ Graphen\ wird\ nicht\ zwischen\ eingehenden\ und\ ausgehenden\ Kanten\ \n\ unterschieden.\n\n\ @param\ \ \ knotennr\ \ \ \ Die\ Nummer\ des\ Knotens,\ zu\ dem\ die\ Kanten\ gesucht\ werden\n\ @param\ \ \ filter\ \ \ \ \ \ optionaler\ Filter,\ der\ auf\ die\ Liste\ angewendet\ wird.\ Er\ muss\ einen\ boolean-Wert\ zur\u00FCckgeben\:\ z.B.\ @literal{k->k.isMarkiert()\ &&\ k.isBesucht()}\n\ @return\ \ Liste\ der\ eingehenden\ Kanten.\n comment23.params=k\ filter comment23.target=java.util.List\ getEingehendeKanten(Knoten,\ java.util.function.Predicate[]) comment23.text=\n\ Gibt\ eine\ Liste\ der\ eingehenden\ Kanten\ eines\ Knotens\ k\ zurueck,\ falls\ k\ in\ der\ Knotenliste\ vorhanden\ ist.\ \n\ Bei\ ungerichteten\ Graphen\ wird\ nicht\ zwischen\ eingehenden\ und\ ausgehenden\ Kanten\ \n\ unterschieden.\n\n\ @param\ \ \ k\ \ \ \ \ \ \ \ Knoten,\ zu\ dem\ die\ Kanten\ gesucht\ werden\n\ @param\ \ \ filter\ \ \ optionaler\ Filter,\ der\ auf\ die\ Liste\ angewendet\ wird.\ Er\ muss\ einen\ boolean-Wert\ zur\u00FCckgeben\:\ z.B.\ @literal{k->k.isMarkiert()\ &&\ k.isBesucht()}\n\ @return\ \ Liste\ der\ eingehenden\ Kanten.\n comment24.params=knotennr comment24.target=Knoten\ getKnoten(int) comment24.text=\n\ Liefert\ einen\ Knoten\ des\ Graphen\n\ @param\ knotennr\ Nummer\ der\ Knoten\ (beginnend\ mit\ 0)\n\ @return\ liefert\ den\ Knoten\ mit\ dieser\ Nummer\n comment25.params=k comment25.target=void\ neuerKnoten(Knoten) comment25.text=\n\ F\u00FCgt\ einen\ Knoten\ dem\ Graph\ hinzu.\n\ @param\ \ k\ \ \ \ Der\ Knoten,\ der\ hinzugefuegt\ werden\ soll\n comment26.params=knotennr comment26.target=void\ entferneKnoten(int) comment26.text=\n\ Entfernt\ einen\ Knoten\ aus\ dem\ Graphen\n\n\ @param\ \ \ knotennr\ \ \ \ Nummer\ des\ Knotens,\ der\ geloescht\ werden\ soll\n comment27.params=k comment27.target=boolean\ entferneKnoten(Knoten) comment27.text=\n\ Entfernt\ einen\ Knoten\ aus\ dem\ Graphen\n\n\ @param\ \ \ k\ \ \ \ Knoten,\ der\ geloescht\ werden\ soll\n\ @return\ \ gibt\ zur\u00FCck,\ ob\ der\ Knoten\ erfolgreich\ entfernt\ wurde.\n comment28.params=e comment28.target=boolean\ isKanteEnthalten(Kante) comment28.text=\n\ Ueberprueft,\ ob\ eine\ Kante\ im\ Graphen\ enthalten\ ist.\n\n\ @param\ \ \ e\ \ \ \ \ Die\ zu\ suchende\ Kante\n\ @return\ \ Kante\ enthalten\ (true)\ oder\ nicht\ (false)\n comment29.params=startNr\ zielNr comment29.target=boolean\ isKanteEnthalten(int,\ int) comment29.text=\n\ Ueberprueft,\ ob\ eine\ Kante\ im\ Graphen\ enthalten\ ist.\ \n\ In\ ungerichteten\ Graphen\ wird\ nicht\ zwischen\ Start-\ und\ Zielknoten\ unterschieden\n\n\ @param\ \ \ startNr\ \ \ \ Nummer\ des\ Startknotens\n\ @param\ \ \ zielNr\ \ \ \ \ Nummer\ des\ Zielknotens\n\ @return\ \ boolean\ \ \ \ \ Kante\ enthalten\ (true)\ oder\ nicht\ (false)\n comment3.params= comment3.target=void\ loescheGraph() comment3.text=\n\ L\u00F6scht\ alle\ Knoten\ und\ Kanten\ eines\ Graphen\ und\ stellt\ auf\ ungerichtet\ und\ ungewichtet\ zur\u00FCck.\n comment30.params=start\ ziel comment30.target=boolean\ isKanteEnthalten(Knoten,\ Knoten) comment30.text=\n\ Ueberprueft,\ ob\ eine\ Kante\ im\ Graphen\ enthalten\ ist.\ \n\ In\ ungerichteten\ Graphen\ wird\ nicht\ zwischen\ Start-\ und\ Zielknoten\ unterschieden\n\n\ @param\ \ \ start\ \ \ \ Startknoten\n\ @param\ \ \ ziel\ \ \ \ \ Zielknoten\n\ @return\ \ boolean\ \ \ \ \ Kante\ enthalten\ (true)\ oder\ nicht\ (false)\n comment31.params=start\ ziel comment31.target=Kante\ getKante(Knoten,\ Knoten) comment31.text=\n\ Gibt\ eine\ gesuchte\ Kante\ aus\ dem\ Graphen\ zurueck.\n\ In\ ungerichteten\ Graphen\ wird\ nicht\ zwischen\ Start-\ und\ Zielknoten\ unterschieden\n\n\ @param\ \ \ start\ \ \ \ Der\ StartKnoten\n\ @param\ \ \ ziel\ \ \ \ \ Der\ StartKnoten\n\ @return\ \ \ \ Die\ gesuchte\ Kante\n comment32.params=startnr\ zielnr comment32.target=Kante\ getKante(int,\ int) comment32.text=\n\ Gibt\ eine\ gesuchte\ Kante\ aus\ dem\ Graphen\ zurueck.\n\ In\ ungerichteten\ Graphen\ wird\ nicht\ zwischen\ Start-\ und\ Zielknoten\ unterschieden\n\n\ @param\ \ \ startnr\ \ \ \ Der\ Nummer\ des\ StartKnoten\n\ @param\ \ \ zielnr\ \ \ \ \ Die\ Nummer\ des\ Zielknoten\n\ @return\ \ Die\ gesuchte\ Kante\n comment33.params=e comment33.target=void\ neueKante(Kante) comment33.text=\n\ Fuegt\ eine\ Kante\ dem\ Graphen\ hinzu.\n\ Dabei\ wird\ ueberprueft,\ ob\ die\ Kante\ schon\ im\ Graphen\ enthalten\ ist.\n\ \n\ Ist\ der\ Graph\ ungerichtet,\ werden\ sowohl\ "Hin-"\ und\ "RueckKante"\ erstellt.\n\n\ @param\ \ \ e\ \ \ \ \ Die\ Kante,\ die\ hinzugefuegt\ werden\ soll\n comment34.params=start\ ziel\ gewicht comment34.target=void\ neueKante(Knoten,\ Knoten,\ double) comment34.text=\n\ Fuegt\ eine\ Kante\ dem\ Graphen\ hinzu.\n\ Dabei\ wird\ ueberprueft,\ ob\ die\ Kante\ schon\ im\ Graphen\ enthalten\ ist.\n\ \n\ Ist\ der\ Graph\ ungerichtet,\ werden\ sowohl\ "Hin-"\ und\ "RueckKante"\ erstellt.\n\n\ @param\ \ \ start\ \ \ \ \ Der\ StartKnoten\ der\ Kante,\ die\ hinzugefuegt\ werden\ soll\n\ @param\ \ \ ziel\ \ \ \ \ Der\ ZielKnoten\ der\ Kante,\ die\ hinzugefuegt\ werden\ soll\n\ @param\ \ \ gewicht\ \ \ \ \ Das\ Gewicht\ der\ Kante,\ die\ hinzugefuegt\ werden\ soll\n comment35.params=e comment35.target=void\ entferneKante(Kante) comment35.text=\n\ Entfernt\ eine\ Kante\ aus\ dem\ Graphen.\n\ Ist\ der\ Graph\ ungerichtet,\ werden\ sowohl\ "Hin-"\ und\ "RueckKante"\ entfernt.\n\n\ @param\ \ \ e\ Die\ zu\ entfernende\ Kante\n comment36.params=start\ ziel comment36.target=void\ entferneKante(Knoten,\ Knoten) comment36.text=\n\ Entfernt\ eine\ Kante\ aus\ dem\ Graphen.\n\ Dabei\ wird\ ueberprueft,\ ob\ die\ Kante\ ueberhaupt\ im\ Graphen\ enthalten\ ist.\n\ \n\ Ist\ der\ Graph\ ungerichtet,\ werden\ sowohl\ "Hin-"\ und\ "RueckKante"\ entfernt.\n\n\ @param\ \ \ start\ \ \ \ StartKnotens\n\ @param\ \ \ ziel\ \ \ \ \ ZielKnotens\n comment37.params=startnr\ zielnr comment37.target=void\ entferneKante(int,\ int) comment37.text=\n\ Entfernt\ eine\ Kante\ aus\ dem\ Graphen.\n\ Ist\ der\ Graph\ ungerichtet,\ werden\ sowohl\ "Hin-"\ und\ "RueckKante"\ entfernt.\n\n\ @param\ \ \ startnr\ \ \ \ Nummer\ des\ StartKnotens\n\ @param\ \ \ zielnr\ \ \ \ \ Nummer\ des\ ZielKnotens\n comment38.params= comment38.target=boolean\ isLeer() comment38.text=\n\ Ueberprueft,\ ob\ die\ Adjazenzliste\ leer\ ist,\ d.h.\ keine\ Knoten\ im\ Graphen\ enthalten\ sind.\n\ \n\ @return\ \ \ true,\ wenn\ die\ Liste\ leer\ ist,\ sonst\ false\n comment39.params= comment39.target=void\ loescheAlles() comment39.text=\n\ Loescht\ den\ gesamten\ Graphen\n comment4.params=csvParser comment4.target=boolean\ ladeGraph(imp.Table) comment4.text=\n\ Ein\ Graph\ wird\ aus\ einer\ csv-Datei\ erstellt,\ die\ entweder\n\ eine\ Matrix\ oder\ eine\ Adjazenzliste\ enth\u00E4lt,\ die\ den\ Graph\ beschreibt.\n\n\ @param\ \ csvParser\ \ \ Eine\ CSV-Datei\ als\ Table-Objekt\n\ @return\ gibt\ zur\u00FCck,\ ob\ das\ Laden\ erfolgreich\ war\n comment40.params=asMatrix comment40.target=java.lang.String\ toCSVString(boolean) comment40.text=\n\ Die\ Methode\ erstellt\ eine\ CSV-Ausgabe\ des\ Graphen\ entweder\ als\ Adjazenzliste\ oder\ als\ Adjazenzmatrix.\n\n\ @param\ \ \ asMatrix\ \ \ \ true,\ falls\ die\ CSV-Ausgabe\ eine\ AdjazenzMatrix\ sein\ soll,\ sonst\ false\n\ @return\ \ CSV-Ausgabe\n comment41.params= comment41.target=java.lang.String\ toString() comment41.text=\n\ Textuelle\ Repraesentation\ des\ Graphen.\n\ \n\ @return\ \ Der\ Graph\ als\ Stringrepraesentation\n comment42.params= comment42.target=void\ ausgabe() comment42.text=\n\ Konsolenausgabe\ der\ textuellen\ Repraesentation\ des\ Graphen.\n comment43.params=k\ zeigeWert comment43.target=java.lang.String\ getKnoteninfo(Knoten,\ boolean) comment43.text=\n\ Info\ \u00FCber\ einen\ Knoten\ zur\u00FCckgeben\ \n\ @param\ k\ Knoten,\ des\ Info\ ermittelt\ werden\ soll\n\ @param\ zeigeWert\ Soll\ der\ Wert\ des\ Knoten\ in\ der\ Info\ enthalten\ sein\n\ @return\ Infotext\ oder\ Nummer\ des\ Knoten\ und\ ggf.\ sein\ Wert\n comment44.params= comment44.target=java.util.List\ getStatus() comment44.text=\ Speichert\ den\ Zustand\ des\ Graphen\ als\ String-List\n\ @return\ List\ mit\ Zustand\n comment45.params=status comment45.target=void\ setStatus(java.util.List) comment45.text=\ Stellt\ den\ Zustand\ des\ Graphen\ aus\ String-List\ wieder\ her\n\ @param\ status\ List\ mit\ Zustand\n comment5.params=isGewichtet comment5.target=void\ setGewichtet(boolean) comment5.text=\n\ Legt\ fest,\ ob\ der\ Graph\ gewichtet\ oder\ ungewichtet\ ist.\n\n\ @param\ isGewichtet\ neuer\ Wert\n comment6.params= comment6.target=boolean\ isGewichtet() comment6.text=\n\ Gibt\ zurueck,\ ob\ der\ Graph\ gewichtet\ oder\ ungewichtet\ ist\n\n\ @return\ gewichtet?\ (true/false)\n comment7.params=isGerichtet comment7.target=void\ setGerichtet(boolean) comment7.text=\n\ Legt\ fest,\ ob\ der\ Graph\ gerichtet\ oder\ ungerichtet\ ist.\n\n\ @param\ \ isGerichtet\ neuer\ Wert\n comment8.params= comment8.target=boolean\ isGerichtet() comment8.text=\n\ Gibt\ zurueck,\ ob\ der\ Graph\ gerichtet\ oder\ ungerichtet\ ist.\n\n\ @return\ \ gerichtet?\ (true/false)\n comment9.params=k comment9.target=int\ getNummer(Knoten) comment9.text=\ Gibt\ die\ Nummer\ eines\ Knotens\ im\ Graphen\ zur\u00FCck\n\ @param\ \ k\ \ gesuchter\ Knoten\n\ @return\ Nummer\ des\ Knotens\ (mit\ 0\ beginnend)\n numComments=46