From 0dde01169f9abde2fa0d0953eebfdcf6b0b59ee0 Mon Sep 17 00:00:00 2001 From: "artem.didytschuk" Date: Mon, 18 Jan 2021 14:34:11 +0100 Subject: [PATCH] findVertex() Breitensuche Implementiert --- Breitensuche.class | Bin 0 -> 3431 bytes Breitensuche.ctxt | 20 ++++++++++++++++ Breitensuche.java | 25 +++++++++++++++++++- BreitensucheTest.class | Bin 0 -> 1106 bytes BreitensucheTest.ctxt | 7 ++++++ Edge.class | Bin 0 -> 1000 bytes Edge.ctxt | 22 +++++++++++++++++ Graph.class | Bin 0 -> 4217 bytes Graph.ctxt | 52 +++++++++++++++++++++++++++++++++++++++++ List$ListNode.class | Bin 0 -> 1326 bytes List.class | Bin 0 -> 3387 bytes List.ctxt | 43 ++++++++++++++++++++++++++++++++++ Queue$QueueNode.class | Bin 0 -> 1192 bytes Queue.class | Bin 0 -> 1541 bytes Queue.ctxt | 19 +++++++++++++++ Vertex.class | Bin 0 -> 688 bytes Vertex.ctxt | 16 +++++++++++++ 17 files changed, 203 insertions(+), 1 deletion(-) create mode 100644 Breitensuche.class create mode 100644 Breitensuche.ctxt create mode 100644 BreitensucheTest.class create mode 100644 BreitensucheTest.ctxt create mode 100644 Edge.class create mode 100644 Edge.ctxt create mode 100644 Graph.class create mode 100644 Graph.ctxt create mode 100644 List$ListNode.class create mode 100644 List.class create mode 100644 List.ctxt create mode 100644 Queue$QueueNode.class create mode 100644 Queue.class create mode 100644 Queue.ctxt create mode 100644 Vertex.class create mode 100644 Vertex.ctxt diff --git a/Breitensuche.class b/Breitensuche.class new file mode 100644 index 0000000000000000000000000000000000000000..34b28335d790cee248702b658693010ed291f21b GIT binary patch literal 3431 zcmbVOTXP%b8Gcq;X=Qos*p72h+K__@^)cZLu|sfd$K)WJ1c!i4Xjw~ZX=7>ESxF%# z91;p7v`tzHw8W&GN->mh=uE3j33NKcMQ3^i7u<5u=}+LIoq@W~yQ`JuU~aHSyWjVG z@9}xx_mlqlzmNU~;5K{^$1O-{NXHREstz~9)G!r8CXNWQ0$MQ~jbS>5TnzabYz
S`#&u@NcR6vb^Rj^lV( zRwv|ORvwSY)jD|BB&MHtc3bf>1 zt}&DCQxM%@*;a9S8Q!?k2z0o7vG zDkx}74!EXOH0?qul{INJJnc{=mON~_Me_s!HC-|(7*0E`g3zSJW!63}OGiO`%CghG zsDf4P$)m<`V_VL!Guy_Bu4QNXIwlx3r6YD`(xsVbGHDfxG+Q_0tL+_<0KcWDpuS)l zZYq1QWR@6^mh=`>T)i}#*_j}tCeQSaAo87*ZT7X6U=3qMBQ-r@%y>j-c$OqAW-&19 z1yl>%XIhzTk?Cd3q960H>*OU3U%08=Eu93*F@gt)pfD`OkQlFKaC`Jy%P)F>sE zu^;$e+a4JImaoQ{!IJBmb|p4a{BR{;h170ds<^!8_?T02Q|7QG-O^m!5L=}%I&Q~y zmeA`v9k=2(Ithv%+5c%dXN$c9dn!8Mq_U+vJ8gG5V~VA7I?m&lI(~)c=+-N|j$h+>9WUTT4ZqRxTfC&> z0-n<`hnIC+#P4*xf>(9ChSznxf$cheFW8%c{Xtf52{tc}xABgSKg#M|T+;C#-dCX4 zCas`pu^;cAJZh#`eN_tn9X-zBt25HoIjFC4E@RnR-328a5?G^x!k{R}M z_hwjQU=j}lH|=BoOfD-csab{H`I+LZcQJAPBU7$ple?wiRE#TVV6>ysvXksWhQN99 z^Y7~jE(@*b3|p@7UzarsyHXr13dX58NXzVfHk4J6_)PYeYMUpBXlW+pT^=h_PJYI4 z%|p)KjP1DQpiv<2OTrJXtG(pHHS_FD8lZi@L^b1A4b7{WUzT7>c@Ga^6TgCP;kN^C zNEsEbqFi%=`0OS84`}>{($IMsO6L`X#xEoM7pPYd8E=VR=1tf6XQ*9e#5|;q$cP}_ z0TL%NDo9U&)D!7d1xly^rVAGFut9D! z!A)3+JJ5>VScLKcnWqu^InCo1)`d?4ad6 zKKZn>le+}I!ky@6X}a()?BXiKlg}`~RhT|L!5~*Ey}W}VuK10P7wNy>E9x-rsucAs zr6aWWp%54@V*}l@uA98dwUF%1Wwf!T*IqzGy(B^&$ZBoruI|dXjz#{_9H#kd|2rZ< zl{+$apW>h;AVlH&nnRuEfXUOXF*o#-OpWKh|ULD2z zWKa0MnY@frV-NMi)E=YUKKdkAl^V!uKaym!iP!fCr9-%z=d1bl*qHbR>or6)jCHKh{_9ocP*4>drF59mUR&2z#mhVF<=yB>j5F^E`k3@$-so#p z<7=tL7pjR*_aYWVqEc}0_wYMKzZv>65t&<<=krBSP^25H_ zP=VNrtbbb>*Iz_^jab**!WZ0%CZ#uBEzRDI&Ld8k9rPt%H*|kUr+)kN@@Fb=lDkKt z<8h{RibXojv3inY`xL`_hK+QF4Re-b`z(&|w?Yc%nEd&g)U7Jz7E8a6r0SK{@moSD z2juJkSJDVNB40yi2V56lAEjlvMke@qfF3+jlupJJmDrebCqF`pH&|V~KW{AKrtNaI zZsmtbx5+SeRiymmwdzZxDNq!#xrNX95?ex3<%ERN9!agxL|ACz>xQ01ns)L=1Anuq zc$uMJpCurrentVertex\ am\ geringsten\ ist.\ Der\ Knoten\ wird\r\n\ aus\ der\ Liste\ gel\u00F6scht\ und\ dann\ zur\u00FCck\r\n\ gegeben.\r\n\ @param\ pVertices\r\n\ @return\r\n +numComments=7 diff --git a/Breitensuche.java b/Breitensuche.java index f1e2461..7e0356f 100644 --- a/Breitensuche.java +++ b/Breitensuche.java @@ -44,7 +44,7 @@ public class Breitensuche { g.setAllVertexMarks(false); // Markierungen zurücksetzen Queue searchQueue = new Queue<>(); // Speicher für zu bearbeitende Knoten erstellen - // TODO: Implementiere die Breitensuche als iterativen Algorithmus: + // Finished: Implementiere die Breitensuche als iterativen Algorithmus: // Reihe dazu die noch nicht markierten Nachbarknoten in die // searchQueue ein und arbeite die Knoten in ihr der Reihe nach // ab, bis die Queue leer ist, oder der gesuchte Knoten @@ -54,6 +54,29 @@ public class Breitensuche { // TODO: Wenn dein Algorithmus funnktioniert, kopiere die Methode und // Erstelle Varianten, bei denen die Reihenfolge der Nachbarknoten // modifiziert ist. Dazu + + if(g.getVertex("Köln").getID().equals(pVertexID)){ + return true; + } else { + g.getVertex("Köln").setMark(true); + searchQueue.enqueue(g.getVertex("Köln")); + while(!searchQueue.isEmpty()){ + Vertex v = searchQueue.front(); + List ngbrs = g.getNeighbours(v); + ngbrs.toFirst(); + while(ngbrs.hasAccess()){ + if(!ngbrs.getContent().isMarked()){ + if(ngbrs.getContent().getID().equals(pVertexID)){ + return true; + } + ngbrs.getContent().setMark(true); + searchQueue.enqueue(ngbrs.getContent()); + } + ngbrs.next(); + } + searchQueue.dequeue(); + } + } return false; } diff --git a/BreitensucheTest.class b/BreitensucheTest.class new file mode 100644 index 0000000000000000000000000000000000000000..7a0423f6dfddfbb7396f9da2d30e261071464e18 GIT binary patch literal 1106 zcmaJ=T~pIQ6g^v@T}lKDg5n2O@q-d=K~Yp3h3en~9i5Td8F>rsLKo9rCfP9l2>*;P z;OLAmzWJjZ@1~JPM#;nG?#VfK&%Jl^^Viq!0G6>*gp1h%ZWNKjEXPfbTQ9ge#k6^^Qf7dRFmnR#xO8fZZZtM&~3pmR+mb=j=S3;Z1~#& zA#Po_{GjQF((Y4m&~#*Eztut^jZjhC>WGGj%nHL$B+R>ghUvGlGO{b0GLocRQ%W1( zNUai~4tJ}2F*&H##EuRH2}cbjSeL5Z6rm9x8FGfGqko-2wDEdhn;u!*)N$An>(UyY zJn5;j=O6eECUB0y$$n&*e<{M!1{o8owDIFGP$e0elI)gVh5mkrzylq2eAO1JLWLy^ z2M_SDfMo}d@R*^J$xxFb5IZ7hpO$6#n8n~_#k$pryQeAhwS>a3kdZa?2dNX4lC94F zy(c^ePps#~jJ~c_TldO7H9@{dr1ob!X!}o)ZE!X4)o%68_MT`FRNTqTadNKSXKb2K zs@;|H7U}wfT#F(aI_dl*XoN9Ma_S$tEqhr@`)Vf z2wVMz-1{R8)ZIbP9Xdq*3kojx+~G7VdhSRXI-Ywb2}j*A&mHfDeGfAzP`)v6s(FH{ no}sl&hL@U1^*ew&s1@O0!+}?Tjj}AhEENY;2R9V* zM>>kbwjL`KUe%jC=(qP2>^C~>_F@IKqhKBc(QAf#yuTj~!gxzz!ON1feW%=H>ce42 zE6mlyfqr^;(9+TKpw;J1sXlB6{bmq_a-LqAaW7#G8xQHuUS8)w%C^5(9D~0*Cz+IxV zILEdUooAFwq6>sGc)Q5@6zL`FXnq{W}{*zJPbbaF$cjYB`wNy;L}ruvel$@ zD!w>vZ4qFJv*3@1Wdf&dw%FF7hV5_A-*0Qhr1>ps-aesaAKS1Y$fC7EyQx-UA{{lGwi{}6U literal 0 HcmV?d00001 diff --git a/Edge.ctxt b/Edge.ctxt new file mode 100644 index 0000000..a53437c --- /dev/null +++ b/Edge.ctxt @@ -0,0 +1,22 @@ +#BlueJ class context +comment0.target=Edge +comment0.text=\r\n\

\r\n\ Materialien\ zu\ den\ zentralen\ NRW-Abiturpruefungen\ im\ Fach\ Informatik\ ab\ 2018\r\n\

\r\n\

\r\n\ Klasse\ Edge\r\n\

\r\n\

\r\n\ Die\ Klasse\ Edge\ stellt\ eine\ einzelne,\ ungerichtete\ Kante\ eines\ Graphen\ dar.\ \r\n\ Beim\ Erstellen\ werden\ die\ beiden\ durch\ sie\ zu\ verbindenden\ Knotenobjekte\ und\ eine\ \r\n\ Gewichtung\ als\ double\ uebergeben.\ Beide\ Knotenobjekte\ koennen\ abgefragt\ werden.\ \r\n\ Des\ Weiteren\ koennen\ die\ Gewichtung\ und\ eine\ Markierung\ gesetzt\ und\ abgefragt\ werden.\r\n\

\r\n\ \r\n\ @author\ Qualitaets-\ und\ UnterstuetzungsAgentur\ -\ Landesinstitut\ fuer\ Schule\r\n\ @version\ Oktober\ 2015\r\n +comment1.params=pVertex\ pAnotherVertex\ pWeight +comment1.target=Edge(Vertex,\ Vertex,\ double) +comment1.text=\r\n\ Ein\ neues\ Objekt\ vom\ Typ\ Edge\ wird\ erstellt.\ Die\ von\ diesem\ Objekt\ \r\n\ repraesentierte\ Kante\ verbindet\ die\ Knoten\ pVertex\ und\ pAnotherVertex\ mit\ der\ \r\n\ Gewichtung\ pWeight.\ Ihre\ Markierung\ hat\ den\ Wert\ false.\r\n +comment2.params= +comment2.target=Vertex[]\ getVertices() +comment2.text=\r\n\ Die\ Anfrage\ gibt\ die\ beiden\ Knoten,\ die\ durch\ die\ Kante\ verbunden\ werden,\ als\ neues\ Feld\ vom\ Typ\ Vertex\ zurueck.\ Das\ Feld\ hat\ \r\n\ genau\ zwei\ Eintraege\ mit\ den\ Indexwerten\ 0\ und\ 1.\r\n +comment3.params=pWeight +comment3.target=void\ setWeight(double) +comment3.text=\r\n\ Der\ Auftrag\ setzt\ das\ Gewicht\ der\ Kante\ auf\ pWeight.\r\n +comment4.params= +comment4.target=double\ getWeight() +comment4.text=\r\n\ Die\ Anfrage\ liefert\ das\ Gewicht\ der\ Kante\ als\ double.\r\n +comment5.params=pMark +comment5.target=void\ setMark(boolean) +comment5.text=\r\n\ Der\ Auftrag\ setzt\ die\ Markierung\ der\ Kante\ auf\ den\ Wert\ pMark.\r\n +comment6.params= +comment6.target=boolean\ isMarked() +comment6.text=\r\n\ Die\ Anfrage\ liefert\ true,\ wenn\ die\ Markierung\ der\ Kante\ den\ Wert\ true\ hat,\ ansonsten\ false.\r\n +numComments=7 diff --git a/Graph.class b/Graph.class new file mode 100644 index 0000000000000000000000000000000000000000..d5cb3a3d957a3b67ff0ced87206fa39e2adfb61f GIT binary patch literal 4217 zcmb7HYiwLc75-*lcXxfAwPVML<0h_M>a2IyPMxL=jomcPJI&fjY&WC{ZgXwl+M77* z?RxFn6p$+QA5S49NQ?MIk|L^#N@=2k1f_yRl!8$IQK(QPejo%$fIuR(3g4Nzdv`ZZ z5S69bJ7>JsI89pV`lQKLh!zl}=<@eJv zj9Yjrju@Vf;|!cQY)r(tWm1MIQE+AT8Cl>E!?b*H2w=uS&ca!R=%QOJScWjl;Y!6-+Ju7X{3&(AHoWphF2T*<-!Ef~4c zZk%^ZgR`?nX~-#_BO9UQDLE-zkU8ULR7BrXXmrdDiHwNcDIId6U&9qq^u_h0aoEjG z&rHlM6gAUj#C|w8R>)YLYa3QAig}%FmKQ&Tic-b6RwJOoV1BMN;}**_Sh@NA=L@A} z@-RwBlkS0>q-0!YU9W`D#=Ynu3sMX=HloeOW*N?*!^SKQ**K3pqh>7Hm_xzFvwDjh zYNLpG3*5SZMH^f2oQ^dLmAt;N}^ab=Aph?Dp&G%)3k69;PkH zy;?I~lGk7|GFo<@U2tXziN*dA^=8?&$XwJ(Ibg)sivik-2N2bAA z)3Z&SlXQRHjs|`+E*v|laU4N@0d1*kP^ljx@Z>cF-$1DH8Gcpgg9>E*p38^ zY^0e_P+}VsxF21dDTXS^W5xV;G$1x*&vG_(1)-~mm>=r`+S2AT`W9kW5jT^%%m2BV zrdImXzgPcEQ!!9hJH(2Pkk zHibvvGBDHF&(?I9o#{ARktCFORF8f1atF}?Bff7V_#{0tiByNs3Yt|{>=q3x8r$i) z^d@sx0x?FHMu;RalnHLTj)R#H$H5dQ8hZmjE}<_)u{RHK-XZH+)OZ8U=KG>{DqQPS zCo>Cpj%O_~G|w}?K1;ek$1M9ij^G81;zi$?7#^pi1KOD}- znUB24ER)ch3V6^6OaW-;(iagY=JX}ho3*upKFZWAIujk z%&D9Ut!69mErjsJ@`5X@eLfpH!+S24Cl+dOuj`{zU}+p z&KDxIosbnnp2FIY|Qq6xob1N;?f_%&PXdsU#y5en#grc6y#w>Q-$K{|XFU^N5@ zFbYf&wUmLGtXU20Hw5-Rf&G@ien(&*5ZLbt;O55y_Bb1Zxu5?`x8+VB@$P5o{x$G+ zR>MmS_XKruXL_Vp#hJkTV9LicT&TVT-`01Bxw?DV7J)ypP5p%z;9uFG{>BUN@94!p zSa|EFCnZs8a{)Sje>Y75Iknw7NB)txuWRwmbbfRBOl^)3>5@JNpGtzxeC z6(m{B^|#2Hc@kwAnjW8lThtc@&fJZGLw91JS#D83Y$RfXA)>KXZj_i}S8nG+g%DL1 z5-N&TRfjFgMz5;JV=93IssUrF38z&vo>J?o_}K3AamKI9GhXwG;^ZnmMAE*RkFDgR zxx&W~`QVe9V<&m|BlV>#jH_XTUTTP*vL7Gmxq*Y#ekXQ@T0=S`>RLmgZJCQ`l6mG5 zT4c_|kcWjwlV^@(yxvoJSadNgPz0$u5mWbJz3M`j+CmaiIIc1{sd`96uO?wTfpzgo zAxR-28}~^V_ec=gG5ypC;541z#pID>XhK*&I_wo>=zJnB-Yfa1!Sh<)De?@C5-+cz c_0kXm`sEW5xq3(gFz?)`cdTMoiq`0V0coZEO#lD@ literal 0 HcmV?d00001 diff --git a/Graph.ctxt b/Graph.ctxt new file mode 100644 index 0000000..063074e --- /dev/null +++ b/Graph.ctxt @@ -0,0 +1,52 @@ +#BlueJ class context +comment0.target=Graph +comment0.text=\r\n\

\r\n\ Materialien\ zu\ den\ zentralen\ NRW-Abiturpruefungen\ im\ Fach\ Informatik\ ab\ 2018\r\n\

\r\n\

\r\n\ Klasse\ Graph\r\n\

\r\n\

\r\n\ Die\ Klasse\ Graph\ stellt\ einen\ ungerichteten,\ kantengewichteten\ Graphen\ dar.\ Es\ koennen\ \r\n\ Knoten-\ und\ Kantenobjekte\ hinzugefuegt\ und\ entfernt,\ flache\ Kopien\ der\ Knoten-\ und\ Kantenlisten\ \r\n\ des\ Graphen\ angefragt\ und\ Markierungen\ von\ Knoten\ und\ Kanten\ gesetzt\ und\ ueberprueft\ werden.\r\n\ Des\ Weiteren\ kann\ eine\ Liste\ der\ Nachbarn\ eines\ bestimmten\ Knoten,\ eine\ Liste\ der\ inzidenten\ \r\n\ Kanten\ eines\ bestimmten\ Knoten\ und\ die\ Kante\ von\ einem\ bestimmten\ Knoten\ zu\ einem\ \r\n\ anderen\ bestimmten\ Knoten\ angefragt\ werden.\ Abgesehen\ davon\ kann\ abgefragt\ werden,\ welches\ \r\n\ Knotenobjekt\ zu\ einer\ bestimmten\ ID\ gehoert\ und\ ob\ der\ Graph\ leer\ ist.\r\n\

\r\n\ \r\n\ @author\ Qualitaets-\ und\ UnterstuetzungsAgentur\ -\ Landesinstitut\ fuer\ Schule\r\n\ @version\ Oktober\ 2015\r\n +comment1.params= +comment1.target=Graph() +comment1.text=\r\n\ Ein\ Objekt\ vom\ Typ\ Graph\ wird\ erstellt.\ Der\ von\ diesem\ Objekt\ \r\n\ repraesentierte\ Graph\ ist\ leer.\r\n +comment10.params=pMark +comment10.target=void\ setAllEdgeMarks(boolean) +comment10.text=\r\n\ Der\ Auftrag\ setzt\ die\ Markierungen\ aller\ Kanten\ des\ Graphen\ auf\ pMark.\r\n +comment11.params= +comment11.target=boolean\ allVerticesMarked() +comment11.text=\r\n\ Die\ Anfrage\ liefert\ true,\ wenn\ alle\ Knoten\ des\ Graphen\ mit\ true\ markiert\ sind,\ ansonsten\ false.\r\n +comment12.params= +comment12.target=boolean\ allEdgesMarked() +comment12.text=\r\n\ Die\ Anfrage\ liefert\ true,\ wenn\ alle\ Kanten\ des\ Graphen\ mit\ true\ markiert\ sind,\ ansonsten\ false.\r\n +comment13.params=pVertex +comment13.target=List\ getNeighbours(Vertex) +comment13.text=\r\n\ Die\ Anfrage\ liefert\ alle\ Nachbarn\ des\ Knotens\ pVertex\ als\ neue\ Liste\ vom\ Typ\ List.\ Hat\ der\ Knoten\r\n\ pVertex\ keine\ Nachbarn\ in\ diesem\ Graphen\ oder\ ist\ gar\ nicht\ in\ diesem\ Graphen\ enthalten,\ so\ \r\n\ wird\ eine\ leere\ Liste\ zurueckgeliefert.\r\n +comment14.params=pVertex +comment14.target=List\ getEdges(Vertex) +comment14.text=\r\n\ Die\ Anfrage\ liefert\ eine\ neue\ Liste\ alle\ inzidenten\ Kanten\ zum\ Knoten\ pVertex.\ Hat\ der\ Knoten\r\n\ pVertex\ keine\ inzidenten\ Kanten\ in\ diesem\ Graphen\ oder\ ist\ gar\ nicht\ in\ diesem\ Graphen\ enthalten,\ so\ \r\n\ wird\ eine\ leere\ Liste\ zurueckgeliefert.\r\n +comment15.params=pVertex\ pAnotherVertex +comment15.target=Edge\ getEdge(Vertex,\ Vertex) +comment15.text=\r\n\ Die\ Anfrage\ liefert\ die\ Kante,\ welche\ die\ Knoten\ pVertex\ und\ pAnotherVertex\ verbindet,\ \r\n\ als\ Objekt\ vom\ Typ\ Edge.\ Ist\ der\ Knoten\ pVertex\ oder\ der\ Knoten\ pAnotherVertex\ nicht\ \r\n\ im\ Graphen\ enthalten\ oder\ gibt\ es\ keine\ Kante,\ die\ beide\ Knoten\ verbindet,\ so\ wird\ null\ \r\n\ zurueckgeliefert.\r\n +comment16.params= +comment16.target=boolean\ isEmpty() +comment16.text=\r\n\ Die\ Anfrage\ liefert\ true,\ wenn\ der\ Graph\ keine\ Knoten\ enthaelt,\ ansonsten\ false.\r\n +comment2.params= +comment2.target=List\ getVertices() +comment2.text=\r\n\ Die\ Anfrage\ liefert\ eine\ neue\ Liste\ aller\ Knotenobjekte\ vom\ Typ\ List.\r\n +comment3.params= +comment3.target=List\ getEdges() +comment3.text=\r\n\ Die\ Anfrage\ liefert\ eine\ neue\ Liste\ aller\ Kantenobjekte\ vom\ Typ\ List.\r\n +comment4.params=pID +comment4.target=Vertex\ getVertex(java.lang.String) +comment4.text=\r\n\ Die\ Anfrage\ liefert\ das\ Knotenobjekt\ mit\ pID\ als\ ID.\ Ist\ ein\ solchen\ Knotenobjekt\ nicht\ im\ Graphen\ enthalten,\r\n\ wird\ null\ zurueckgeliefert.\r\n +comment5.params=pVertex +comment5.target=void\ addVertex(Vertex) +comment5.text=\r\n\ Der\ Auftrag\ fuegt\ den\ Knoten\ pVertex\ in\ den\ Graphen\ ein,\ sofern\ es\ noch\ keinen\r\n\ Knoten\ mit\ demselben\ ID-Eintrag\ wie\ pVertex\ im\ Graphen\ gibt\ und\ pVertex\ eine\ ID\ ungleich\ null\ hat.\ \r\n\ Ansonsten\ passiert\ nichts.\r\n +comment6.params=pEdge +comment6.target=void\ addEdge(Edge) +comment6.text=\r\n\ Der\ Auftrag\ fuegt\ die\ Kante\ pEdge\ in\ den\ Graphen\ ein,\ sofern\ beide\ durch\ die\ Kante\ verbundenen\ Knoten\r\n\ im\ Graphen\ enthalten\ sind,\ nicht\ identisch\ sind\ und\ noch\ keine\ Kante\ zwischen\ den\ Knoten\ existiert.\ Ansonsten\ passiert\ nichts.\r\n +comment7.params=pVertex +comment7.target=void\ removeVertex(Vertex) +comment7.text=\r\n\ Der\ Auftrag\ entfernt\ den\ Knoten\ pVertex\ aus\ dem\ Graphen\ und\ loescht\ alle\ Kanten,\ die\ mit\ ihm\ inzident\ sind.\r\n\ Ist\ der\ Knoten\ pVertex\ nicht\ im\ Graphen\ enthalten,\ passiert\ nichts.\r\n +comment8.params=pEdge +comment8.target=void\ removeEdge(Edge) +comment8.text=\r\n\ Der\ Auftrag\ entfernt\ die\ Kante\ pEdge\ aus\ dem\ Graphen.\ Ist\ die\ Kante\ pEdge\ nicht\ \r\n\ im\ Graphen\ enthalten,\ passiert\ nichts.\r\n +comment9.params=pMark +comment9.target=void\ setAllVertexMarks(boolean) +comment9.text=\r\n\ Der\ Auftrag\ setzt\ die\ Markierungen\ aller\ Knoten\ des\ Graphen\ auf\ pMark.\r\n +numComments=17 diff --git a/List$ListNode.class b/List$ListNode.class new file mode 100644 index 0000000000000000000000000000000000000000..af1b6080f00dcae5161d6737825299fdbaf267df GIT binary patch literal 1326 zcmb7CYj4s}7=B8jjLU=}!^?CsWn1YcIQ?MamL-P7Xu|Nr2p{}bu)!`^2rWkcl_nAs zKllUuQO4(O3+0lTNWwWi@9nvq^ZU=wUjUxtSqcdprJ>Sq2pPO z_qKaw^*jZI=9T%$tPf15Uk_rZ3R0JL-!Z+(*kVJw5p=Y_j4bBjj`f*+8%^8wTEq9O z$i8tLYup%^u4}mpa!pB9W_h;k`jNAxLFcuF0?qqiyA`t2{7SZHXSQQ|=L&Z8Ahb@i z+98>S&mh;d9ji6@*tN!OvpXQCLUY(N2OV>4%Q+0j1%}i|p&|vP%8cIUR~;Due;W}t*^HVOolKmS{!)0MTAv5%VF#vhGvKt4Jia3Mpq&@ ziIEg2*b9=^4wKsS<#00YS+8udHYI#&@@i;h%W}QfL)S~g=wf#7K$V?8Plc)IYI+?K`TxdWN334nlD3HkRiE1hUC&jiDZICe?K u!mR`{E-0gQjf{Q&1w^;8C}W?3W-<?M$>yX0 literal 0 HcmV?d00001 diff --git a/List.class b/List.class new file mode 100644 index 0000000000000000000000000000000000000000..bd63d48b6376587c43d8d002997a8e5a2662e049 GIT binary patch literal 3387 zcmb7GTWnNS6kTWLcBY+9+v#g41xit{okw51q_mVmr3lQFVoMc_kLhrQ!FFac50rn6 ze;WS;zo9Yl0}?C-6F)H$jqk*m82$0v#OQ}e)V1%qGjpd?P578|&)sLAz0O*DpMB@v z-*-L+@Hn3JA%G_u(1If}Ov`Z8$KgpId^jev<1#xTL(Ge~JZHpwQf9L}7*iH_ODvT(XNt>z#`mys7+=h`7Kqf+AF5JC!IyXJ>g=!GBzn|m%YoZ!J$T?XK?D6&1_|LwrSoQvC$G=u%uA_E zkzBlK^A(+DPa>N&)92`x%%qbEx;6A`Ic0BMR&uA%rEO~xJ7$H?nai0=%#cwqm$M3u z6l1mw)T=jE>Lp|aue=L}KFP$o7?tADJJ%ecvaGOk+);M>Yt@>lH8BfwnPM(!PN$^E z8iehjWRE;%%zPnkN(tuu*obaF+R@?11{u0!*nvm=n8#^99+BAs!hSrB0VYMllqt&Q zXZ#q)0YA>*tRFkY$I!wC)|QGEaE7I(RcU28RfS_M1uFHX>x-sJF_lc4>^#=8mb5i; zLj|R+CQS?2#>Nm}i*fTu=1}P5%!MFFics}VJsj^%oKrB4o9O!@_b5I)!ndKq>I1lB zaLZuaq}`3p9D}H{d<`VffJHPTNz`-LLaSfzM-R60t+&dujc-a4z){fV`4qIK@GZDL zf!A1p;eMY6!-DZxi)lyLrkb!~k+9qOtAnd?QX(?h9M>WkcmD(7^1~xMR-;&ZcolV5 z&>SWgV-+4-FwLadO3Z8U;&rs)4F_I(4I{CX7`dU^$fU1~_MDxc0MWcx(I{xHb)eoP z)LX2Hw;fP{8Yr;?Ugvmy-^gMy34qCN_jatI`8|ns) zP6e+MYlT?vIj~x5Xo;nYmc9!SVni`uV;1>zF?>hlF4`QpkySKEr8{A7qY)pn!tYqH zLA}q0Wdsajh_QRQtFk5s&}+k7lk#LT+wE&PLK8cSK8l(om_Y}VM@j0V9Qp{pGvNq< z<06J+`5HFcwdJ3Q4zR*j(KHa{u!2BT95@X}d1F`5Bh_&Q8yrDoK~~)rZilUo@hPG2 zk>BS$+85;TB|`WLBlsG7@eM}tEe_#3OyheT!w;Cnk2s5;@B)73egDPMV>d5e2u;{U zCEScMg58|C=;yO%q*hkTbf{I?87%J<1@%s?rR>yN%FdFOO)wr{)C=Ez_+8x&Rri!s z#Z3~Eb{L_mAuUK_nAvS!LAOJgTX2hrYqaTMp#i@!#P8JR59a<)a{Y^)NFk+U&C>7nI;Eb{ezlP zFdVTufJ>gdp6(R{SqyHm3N70jkyb8)TL!C@>jDomNl;A)r~o#oR%~U%39An5QJpxT zHsY}A#!C>f6^(efWojqx8xK^Ju?Mi|)e*d8_nnlD$R#r5wf- Rp9VdA{5*oA%v#V2*S~=)CCUH* literal 0 HcmV?d00001 diff --git a/List.ctxt b/List.ctxt new file mode 100644 index 0000000..3bad4ea --- /dev/null +++ b/List.ctxt @@ -0,0 +1,43 @@ +#BlueJ class context +comment0.target=List +comment0.text=\r\n\

\r\n\ Materialien\ zu\ den\ zentralen\ NRW-Abiturpruefungen\ im\ Fach\ Informatik\ ab\ 2018\r\n\

\r\n\

\r\n\ Generische\ Klasse\ List\r\n\

\r\n\

\r\n\ Objekt\ der\ generischen\ Klasse\ List\ verwalten\ beliebig\ viele\ linear\r\n\ angeordnete\ Objekte\ vom\ Typ\ ContentType.\ Auf\ hoechstens\ ein\ Listenobjekt,\r\n\ aktuellesObjekt\ genannt,\ kann\ jeweils\ zugegriffen\ werden.\r\n\ Wenn\ eine\ Liste\ leer\ ist,\ vollstaendig\ durchlaufen\ wurde\ oder\ das\ aktuelle\r\n\ Objekt\ am\ Ende\ der\ Liste\ geloescht\ wurde,\ gibt\ es\ kein\ aktuelles\ Objekt.\r\n\ Das\ erste\ oder\ das\ letzte\ Objekt\ einer\ Liste\ koennen\ durch\ einen\ Auftrag\ zum\r\n\ aktuellen\ Objekt\ gemacht\ werden.\ Ausserdem\ kann\ das\ dem\ aktuellen\ Objekt\r\n\ folgende\ Listenobjekt\ zum\ neuen\ aktuellen\ Objekt\ werden.\ \r\n\ Das\ aktuelle\ Objekt\ kann\ gelesen,\ veraendert\ oder\ geloescht\ werden.\ Ausserdem\r\n\ kann\ vor\ dem\ aktuellen\ Objekt\ ein\ Listenobjekt\ eingefuegt\ werden.\r\n\

\r\n\ \r\n\ @author\ Qualitaets-\ und\ UnterstuetzungsAgentur\ -\ Landesinstitut\ fuer\ Schule\r\n\ @version\ Generisch_06\ 2015-10-25\r\n +comment1.params= +comment1.target=List() +comment1.text=\r\n\ Eine\ leere\ Liste\ wird\ erzeugt.\r\n +comment10.params=pContent +comment10.target=void\ append(java.lang.Object) +comment10.text=\r\n\ Falls\ pContent\ gleich\ null\ ist,\ geschieht\ nichts.\r\n\ Ansonsten\ wird\ ein\ neues\ Objekt\ pContent\ am\ Ende\ der\ Liste\ eingefuegt.\r\n\ Das\ aktuelle\ Objekt\ bleibt\ unveraendert.\ \r\n\ Wenn\ die\ Liste\ leer\ ist,\ wird\ das\ Objekt\ pContent\ in\ die\ Liste\ eingefuegt\r\n\ und\ es\ gibt\ weiterhin\ kein\ aktuelles\ Objekt\ (hasAccess()\ \=\=\ false).\r\n\ \r\n\ @param\ pContent\r\n\ \ \ \ \ \ \ \ \ \ \ \ das\ anzuhaengende\ Objekt\ vom\ Typ\ ContentType\r\n +comment11.params=pList +comment11.target=void\ concat(List) +comment11.text=\r\n\ Falls\ es\ sich\ bei\ der\ Liste\ und\ pList\ um\ dasselbe\ Objekt\ handelt,\r\n\ pList\ null\ oder\ eine\ leere\ Liste\ ist,\ geschieht\ nichts.\r\n\ Ansonsten\ wird\ die\ Liste\ pList\ an\ die\ aktuelle\ Liste\ angehaengt.\r\n\ Anschliessend\ wird\ pList\ eine\ leere\ Liste.\ Das\ aktuelle\ Objekt\ bleibt\r\n\ unveraendert.\ Insbesondere\ bleibt\ hasAccess\ identisch.\r\n\ \r\n\ @param\ pList\r\n\ \ \ \ \ \ \ \ \ \ \ \ die\ am\ Ende\ anzuhaengende\ Liste\ vom\ Typ\ List\r\n +comment12.params= +comment12.target=void\ remove() +comment12.text=\r\n\ Wenn\ die\ Liste\ leer\ ist\ oder\ es\ kein\ aktuelles\ Objekt\ gibt\ (hasAccess()\r\n\ \=\=\ false),\ geschieht\ nichts.\r\n\ Falls\ es\ ein\ aktuelles\ Objekt\ gibt\ (hasAccess()\ \=\=\ true),\ wird\ das\r\n\ aktuelle\ Objekt\ geloescht\ und\ das\ Objekt\ hinter\ dem\ geloeschten\ Objekt\r\n\ wird\ zum\ aktuellen\ Objekt.\ \r\n\ Wird\ das\ Objekt,\ das\ am\ Ende\ der\ Liste\ steht,\ geloescht,\ gibt\ es\ kein\r\n\ aktuelles\ Objekt\ mehr.\r\n +comment13.params=pNode +comment13.target=List.ListNode\ getPrevious(List.ListNode) +comment13.text=\r\n\ Liefert\ den\ Vorgaengerknoten\ des\ Knotens\ pNode.\ Ist\ die\ Liste\ leer,\ pNode\r\n\ \=\=\ null,\ pNode\ nicht\ in\ der\ Liste\ oder\ pNode\ der\ erste\ Knoten\ der\ Liste,\r\n\ wird\ null\ zurueckgegeben.\r\n\r\n\ @param\ pNode\r\n\ \ \ \ \ \ \ \ \ der\ Knoten,\ dessen\ Vorgaenger\ zurueckgegeben\ werden\ soll\r\n\ @return\ der\ Vorgaenger\ des\ Knotens\ pNode\ oder\ null,\ falls\ die\ Liste\ leer\ ist,\r\n\ \ \ \ \ \ \ \ \ pNode\ \=\=\ null\ ist,\ pNode\ nicht\ in\ der\ Liste\ ist\ oder\ pNode\ der\ erste\ Knoten\r\n\ \ \ \ \ \ \ \ \ der\ Liste\ ist\r\n +comment2.params= +comment2.target=boolean\ isEmpty() +comment2.text=\r\n\ Die\ Anfrage\ liefert\ den\ Wert\ true,\ wenn\ die\ Liste\ keine\ Objekte\ enthaelt,\r\n\ sonst\ liefert\ sie\ den\ Wert\ false.\r\n\ \r\n\ @return\ true,\ wenn\ die\ Liste\ leer\ ist,\ sonst\ false\r\n +comment3.params= +comment3.target=boolean\ hasAccess() +comment3.text=\r\n\ Die\ Anfrage\ liefert\ den\ Wert\ true,\ wenn\ es\ ein\ aktuelles\ Objekt\ gibt,\r\n\ sonst\ liefert\ sie\ den\ Wert\ false.\r\n\ \r\n\ @return\ true,\ falls\ Zugriff\ moeglich,\ sonst\ false\r\n +comment4.params= +comment4.target=void\ next() +comment4.text=\r\n\ Falls\ die\ Liste\ nicht\ leer\ ist,\ es\ ein\ aktuelles\ Objekt\ gibt\ und\ dieses\r\n\ nicht\ das\ letzte\ Objekt\ der\ Liste\ ist,\ wird\ das\ dem\ aktuellen\ Objekt\ in\r\n\ der\ Liste\ folgende\ Objekt\ zum\ aktuellen\ Objekt,\ andernfalls\ gibt\ es\ nach\r\n\ Ausfuehrung\ des\ Auftrags\ kein\ aktuelles\ Objekt,\ d.h.\ hasAccess()\ liefert\r\n\ den\ Wert\ false.\r\n +comment5.params= +comment5.target=void\ toFirst() +comment5.text=\r\n\ Falls\ die\ Liste\ nicht\ leer\ ist,\ wird\ das\ erste\ Objekt\ der\ Liste\ aktuelles\r\n\ Objekt.\ Ist\ die\ Liste\ leer,\ geschieht\ nichts.\r\n +comment6.params= +comment6.target=void\ toLast() +comment6.text=\r\n\ Falls\ die\ Liste\ nicht\ leer\ ist,\ wird\ das\ letzte\ Objekt\ der\ Liste\r\n\ aktuelles\ Objekt.\ Ist\ die\ Liste\ leer,\ geschieht\ nichts.\r\n +comment7.params= +comment7.target=java.lang.Object\ getContent() +comment7.text=\r\n\ Falls\ es\ ein\ aktuelles\ Objekt\ gibt\ (hasAccess()\ \=\=\ true),\ wird\ das\r\n\ aktuelle\ Objekt\ zurueckgegeben,\ andernfalls\ (hasAccess()\ \=\=\ false)\ gibt\r\n\ die\ Anfrage\ den\ Wert\ null\ zurueck.\r\n\ \r\n\ @return\ das\ aktuelle\ Objekt\ (vom\ Typ\ ContentType)\ oder\ null,\ wenn\ es\r\n\ \ \ \ \ \ \ \ \ kein\ aktuelles\ Objekt\ gibt\r\n +comment8.params=pContent +comment8.target=void\ setContent(java.lang.Object) +comment8.text=\r\n\ Falls\ es\ ein\ aktuelles\ Objekt\ gibt\ (hasAccess()\ \=\=\ true)\ und\ pContent\r\n\ ungleich\ null\ ist,\ wird\ das\ aktuelle\ Objekt\ durch\ pContent\ ersetzt.\ Sonst\r\n\ geschieht\ nichts.\r\n\ \r\n\ @param\ pContent\r\n\ \ \ \ \ \ \ \ \ \ \ \ das\ zu\ schreibende\ Objekt\ vom\ Typ\ ContentType\r\n +comment9.params=pContent +comment9.target=void\ insert(java.lang.Object) +comment9.text=\r\n\ Falls\ es\ ein\ aktuelles\ Objekt\ gibt\ (hasAccess()\ \=\=\ true),\ wird\ ein\ neues\r\n\ Objekt\ vor\ dem\ aktuellen\ Objekt\ in\ die\ Liste\ eingefuegt.\ Das\ aktuelle\r\n\ Objekt\ bleibt\ unveraendert.\ \r\n\ Wenn\ die\ Liste\ leer\ ist,\ wird\ pContent\ in\ die\ Liste\ eingefuegt\ und\ es\r\n\ gibt\ weiterhin\ kein\ aktuelles\ Objekt\ (hasAccess()\ \=\=\ false).\ \r\n\ Falls\ es\ kein\ aktuelles\ Objekt\ gibt\ (hasAccess()\ \=\=\ false)\ und\ die\ Liste\r\n\ nicht\ leer\ ist\ oder\ pContent\ gleich\ null\ ist,\ geschieht\ nichts.\r\n\ \r\n\ @param\ pContent\r\n\ \ \ \ \ \ \ \ \ \ \ \ das\ einzufuegende\ Objekt\ vom\ Typ\ ContentType\r\n +numComments=14 diff --git a/Queue$QueueNode.class b/Queue$QueueNode.class new file mode 100644 index 0000000000000000000000000000000000000000..70cf8e76aaa606f96c472401979f476584676436 GIT binary patch literal 1192 zcmb7CU2hUW6g|VoF5p%uMYOeIOHr3?3-v`GY-&ssqY1&75*~b8aDv<5LfFOVtG`GS z8xtS=0sbiCncZdiX!{@uJ9qB6bI!SU=Fi_>zX3eO<1Ess=b*t-(Z2c|=s48T5YYQ0 z*O#s@P;8yspX}z)b_dNjy>r?3p9y5ooPlfm(}@&V>zszQoiAfaEaS@0etYzuQ13ONn^1@^FKIV?T7}$TAtF59oO+s1h&m6 zciC~hE08)3Jmp)CE8EkLJvr&vy&+u|Tcf@`?AjAY?W1H$39*@R)SN(hxs1(5r3G`z zu+q{!>9;usfl_2@p;1+k9*6K=1Yh5CKsT7tZJ6~d23MVBucr~nktA-W#1mKCYu>Cc z^}L5qcmY)A=W9LRZUJJ zC=y7T^)7b!1~tCUBoc}Td_vqMkmH|}@jhQDC`Do^=8D)LUgGX6*Cf}9wSNI&{Y1hN z7f7m4$~u@u-&v8wEq=EGwOy**A^RqIs*Lt<4>gpDm&r#q+$O4i6`~pDHW|;ce2gid zq2n$3x{Gb@m9KYP6_ciXrRMso9ynyzjRid|*3;-jbv@TpSg5D4d_0i~qx+m+sP}?9 zLFTme1F3He!gjSF`6Q4s!h%Rj3CuG}AZ%loRaFk;GHr5|_W6I%)@bMfMG|<3N5N`h Njcbl_X_&N<_y@1u*e3u0 literal 0 HcmV?d00001 diff --git a/Queue.class b/Queue.class new file mode 100644 index 0000000000000000000000000000000000000000..99c3d008be93df58fc9e8092f65e26c7cbaa6f63 GIT binary patch literal 1541 zcmZuxTTc@~6#k~&vb5b&K)|~KqLu~0`wc`BqKOGq4Md|4CJPL(Shv`26-;>7_zUz8 z_~L^miisvBzG&i4GRF9w*+p7wn$FHSbLM=Pv+a-HpS}P%hszmcF_K0Gqp}>gaUuf? zCo>FA$?mi)XJk2Rv;@2Z63kmb_|JR~4*f?JX#DOqr5_zlCGG zHRCS@URbN}R&R7ZK08?sLLG#&>#KTfVx+#@3O&E1&@%1^emJ3!EDYXe|4Dbf&G0<-1buwpv;0LQ_@NGvkcm1N zQ&L@=;+}H3cC+FR&lR6}_al_6J|H1W@*Pu2^lL5H05LUR~Q5j-RAbG|As>aaSRuq0E5 gm5${PvQ=b+iy<~nU>L^?0RKCY<1RxM7FP#}KmEcLs{jB1 literal 0 HcmV?d00001 diff --git a/Queue.ctxt b/Queue.ctxt new file mode 100644 index 0000000..d277cda --- /dev/null +++ b/Queue.ctxt @@ -0,0 +1,19 @@ +#BlueJ class context +comment0.target=Queue +comment0.text=\r\n\

\r\n\ Materialien\ zu\ den\ zentralen\ NRW-Abiturpruefungen\ im\ Fach\ Informatik\ ab\ 2018\r\n\

\r\n\

\r\n\ Generische\ Klasse\ Queue\r\n\

\r\n\

\r\n\ Objekte\ der\ generischen\ Klasse\ Queue\ (Warteschlange)\ verwalten\ beliebige\r\n\ Objekte\ vom\ Typ\ ContentType\ nach\ dem\ First-In-First-Out-Prinzip,\ d.h.,\ das\r\n\ zuerst\ abgelegte\ Objekt\ wird\ als\ erstes\ wieder\ entnommen.\ Alle\ Methoden\ haben\r\n\ eine\ konstante\ Laufzeit,\ unabhaengig\ von\ der\ Anzahl\ der\ verwalteten\ Objekte.\r\n\

\r\n\ \r\n\ @author\ Qualitaets-\ und\ UnterstuetzungsAgentur\ -\ Landesinstitut\ fuer\ Schule\r\n\ @version\ Generisch_02\ 2014-02-21\r\n +comment1.params= +comment1.target=Queue() +comment1.text=\r\n\ Eine\ leere\ Schlange\ wird\ erzeugt.\ \r\n\ Objekte,\ die\ in\ dieser\ Schlange\ verwaltet\ werden,\ muessen\ vom\ Typ\r\n\ ContentType\ sein.\r\n +comment2.params= +comment2.target=boolean\ isEmpty() +comment2.text=\r\n\ Die\ Anfrage\ liefert\ den\ Wert\ true,\ wenn\ die\ Schlange\ keine\ Objekte\ enthaelt,\ \r\n\ sonst\ liefert\ sie\ den\ Wert\ false.\r\n\ \r\n\ @return\ true,\ falls\ die\ Schlange\ leer\ ist,\ sonst\ false\r\n +comment3.params=pContent +comment3.target=void\ enqueue(java.lang.Object) +comment3.text=\r\n\ Das\ Objekt\ pContentType\ wird\ an\ die\ Schlange\ angehaengt.\ \r\n\ Falls\ pContentType\ gleich\ null\ ist,\ bleibt\ die\ Schlange\ unveraendert.\r\n\ \r\n\ @param\ pContent\r\n\ \ \ \ \ \ \ \ \ \ \ \ das\ anzuhaengende\ Objekt\ vom\ Typ\ ContentType\r\n +comment4.params= +comment4.target=void\ dequeue() +comment4.text=\r\n\ Das\ erste\ Objekt\ wird\ aus\ der\ Schlange\ entfernt.\ \r\n\ Falls\ die\ Schlange\ leer\ ist,\ wird\ sie\ nicht\ veraendert.\r\n +comment5.params= +comment5.target=java.lang.Object\ front() +comment5.text=\r\n\ Die\ Anfrage\ liefert\ das\ erste\ Objekt\ der\ Schlange.\ \r\n\ Die\ Schlange\ bleibt\ unveraendert.\ \r\n\ Falls\ die\ Schlange\ leer\ ist,\ wird\ null\ zurueckgegeben.\r\n\r\n\ @return\ das\ erste\ Objekt\ der\ Schlange\ vom\ Typ\ ContentType\ oder\ null,\r\n\ \ \ \ \ \ \ \ \ falls\ die\ Schlange\ leer\ ist\r\n +numComments=6 diff --git a/Vertex.class b/Vertex.class new file mode 100644 index 0000000000000000000000000000000000000000..85da5aeda888019ab28e887415541175051b650e GIT binary patch literal 688 zcmZXRUrQT76vfZ%-?&*Djj>i^>z`IgR%m=`A1ZliDF|uv5DC<`O&sEAOk}f4KU5zq zGzb;?0s5gz&&)1C<1XBpJ9F;2zq|YQ-|s&F-eWI-kCzMZ@Jfd*AKL*O?D*LA@mj!A zrvl~Hd3+N$hVf|7=%k4n4L%4smvM3-AWj6lLp4%qQ((3BR9Wv*`*D0K1xhV7l3%Yc zdonqWdqbX-TjPE_?8b@Gd4A}mXKEr)Xmw?h%J1xDUmblCa0fEgYo%6y+D5>i$n=Y0 za%v~Kt9zBD1vSwd$w};5oxDM3e4X^=XQdH}S(mqZ#1J9ggeYJkM1Z2e(){3BvB-(D zqDO*u?_Bm%)1!+WeoUWV*y2k&v!f$d2SR%=K4aE43ZN9-K}7pgSdl%2{nHeb7|SdG z))_ZwQ)SU6mU!}7ZXqUs~A!1S-fMf8BjoAG#f!ErUuI?1zP8zu)_ve-Z7Kn@;&xHFKd HQEmPQ>!xQZ literal 0 HcmV?d00001 diff --git a/Vertex.ctxt b/Vertex.ctxt new file mode 100644 index 0000000..19a4aa8 --- /dev/null +++ b/Vertex.ctxt @@ -0,0 +1,16 @@ +#BlueJ class context +comment0.target=Vertex +comment0.text=\r\n\

\r\n\ Materialien\ zu\ den\ zentralen\ NRW-Abiturpruefungen\ im\ Fach\ Informatik\ ab\ 2018\r\n\

\r\n\

\r\n\ Klasse\ Vertex\r\n\

\r\n\

\r\n\ Die\ Klasse\ Vertex\ stellt\ einen\ einzelnen\ Knoten\ eines\ Graphen\ dar.\ Jedes\ Objekt\ \r\n\ dieser\ Klasse\ verfuegt\ ueber\ eine\ im\ Graphen\ eindeutige\ ID\ als\ String\ und\ kann\ diese\ \r\n\ ID\ zurueckliefern.\ Darueber\ hinaus\ kann\ eine\ Markierung\ gesetzt\ und\ abgefragt\ werden.\r\n\

\r\n\ \r\n\ @author\ Qualitaets-\ und\ UnterstuetzungsAgentur\ -\ Landesinstitut\ fuer\ Schule\r\n\ @version\ Oktober\ 2015\r\n +comment1.params=pID +comment1.target=Vertex(java.lang.String) +comment1.text=\r\n\ Ein\ neues\ Objekt\ vom\ Typ\ Vertex\ wird\ erstellt.\ Seine\ Markierung\ hat\ den\ Wert\ false.\r\n +comment2.params= +comment2.target=java.lang.String\ getID() +comment2.text=\r\n\ Die\ Anfrage\ liefert\ die\ ID\ des\ Knotens\ als\ String.\r\n +comment3.params=pMark +comment3.target=void\ setMark(boolean) +comment3.text=\r\n\ Der\ Auftrag\ setzt\ die\ Markierung\ des\ Knotens\ auf\ den\ Wert\ pMark.\r\n +comment4.params= +comment4.target=boolean\ isMarked() +comment4.text=\r\n\ Die\ Anfrage\ liefert\ true,\ wenn\ die\ Markierung\ des\ Knotens\ den\ Wert\ true\ hat,\ ansonsten\ false.\r\n +numComments=5