From 62c0478f201604ef41355c71263ca0c7fc93c4e4 Mon Sep 17 00:00:00 2001 From: "artem.didytschuk" Date: Thu, 21 Jan 2021 10:52:23 +0100 Subject: [PATCH] Optimisierungen aus dem Unterricht --- Breitensuche.class | Bin 5173 -> 5308 bytes Breitensuche.java | 40 ++++++++++++++++------------------------ package.bluej | 20 ++++++++++---------- 3 files changed, 26 insertions(+), 34 deletions(-) diff --git a/Breitensuche.class b/Breitensuche.class index 2da9e05b22bbf7263c9f69a866ea44c073ebf9c7..d059f093171307e217a627c010e812506205952a 100644 GIT binary patch delta 2442 zcmcIlX;f8J6#g!}iR%>!C)5f^P2fFx7KZX1Dn-qeDCU$+E|e$Y016K^8*Z&KB}>Dr zCO9iawy;d)sW_xIn6u_kRybwWDwA5ZR;w~!-+lvvwfvPo?mp-4;hcTW_w9YE61F9( z`>s~+0MHp1OVkoQ6)&qWW2TB(D2~7@m>o^yTotdQL=5v(guze|hxsBFh*&7PH&moz zk%&_9D~pCAVX0UmE=!~7GS`abqVb4Wq2fNQ6tPP7S}nSAbwiAjAFgYtg4c>o8a88# z71bKHVw-}fp85HnLQg@~qzt!bY<_lO6AQN6utUQK*lEQs4ZE>M!-rU>;Uj#k;S=o9 z@G16c*oTc8_TzwtgGkqKNOXs>*M=h+j*8|pq}y;zfvJCPVLOk8;}SX+xf&*5qJ|SV zso`^R`~s&me2K4&F6L#fMmcWJFn56`ceJ}ufh{4iKf^s;6{s}y%Fpw-^E?WgQ9mwg zN|tj%R$h*C;HYu#(H`Tfc}9eauTi5QLNP{IGmIIQB;%ynZoFr4&9kPpu;mtJWEG5e zXLB_rF2_BlC@1fVoa z+6Ys)7qMFrH)0dwGvwckJG^MS6J{^k*}Z6Ain#T-^Lk4)IsjfIm?|4s7@g=4O#>}g z@*>F#yTc1d8T5G^lexnH@k;jME|;klBb_2TmSTd8feh|0!!YiCO~Hi{>iq>0Y}3%C z8utWq3wd(AL`UeytHUnylnS3D(y78Xk@5Cw-0P1DuOy#M=tDUQF_aG2kc=p}c;v3= ziEctDK=pnOV7|xoBQcQRRBUmnvQr&`M!2dD& z2W*d1_XKUNVZDNME8^^b<2EbIR;2!g%$8Oot?{j~&aFr#=AAQmg}n3T4vv94@4{J% z;b}ZgPmSRffUAw>zS($~vNtoSrN%=2Wr6SJ(8o_gJ&;e3HB)X(n#?4@G|gp}!P$!J zC3m_AF@(s%nrnn^9#Yq1ikV^L2%YQ|zIXk+i1ZcLCx%fI*+%bx$ppKAKzoQ#5yoH& zCXxh2m_`JjB8JoPDxSuCJcCj^ipc26Rt)%#*-*lA zFJ-xx5sAgbdMUA9#`|ARtXB|~l|*zEQCv;b%CP`%((^59DzFxBV++<`FW%vEQpvYt zEuV#Td=TCz4C`?Y8}XCBIRvm?5X4#+uygCc9w}h^v97Jdy0#AMGylR``~z5v?FLw1 zK_7O4KhY@c55gTLFBoNS7~5}&)SbZ|AUz?4ANxXVP{kVJ?Xix!ECCbFAYX2imI(k(}@1-)_i*Y>(oD9K)_@XQ`yHR9rZ~f;h!f5RLcoCbW0AMz!=%omUfoupJV#xNuCS19T%DXcj%7q zne`9s`InGMz=yL^$Dq2->?m|BAtL{ti;!-o8y;@ H{c_nqBj8BE delta 2244 zcmb`I3s6*L6vzK7yL*@G1)VKX!UEbNVRyAKQq~tKR1V^3CZ+bUVnIgO1_V-jY+0Gl z5^oP#6`x5?SekMvFoeh+zR(aW4IeqxI9B7-OfxkW{l9y6cUH4znrU|Sdz^E=?>pc5 zo%7w@sSShVeSbE!02qd|)pE7pf`u|(#G+^{#u6Kr%2G{>@Xo9p;kyLM6*uD7_1k~2GML3$88dd&D?V5KvQW{ zzJvw^8X6_Mr{H}wnGl=Xu9f(bioAuDz5=gLLbHP1*s9hZmW}#R? z2}%`wj!p$fg>e^-Dfj|ksxC{d8Z9|h$+|%8wz_PR*H>2Qt@Nr{*8b`gDM7tp>96{v z%p|$UTQTl2Uxn9KVS=rAPTs@iv%Li}zQS=6WK)v5(we94kycwz2&Yb|Gi|A+GwKps zgXx={SNP)Z4j`W!hb3_Egov4O zcEY75O}GUFNKZnRx+9?p{Sd?Sx*p-k(7K*dE_XKJR((-aJ@0GA9c&*_waKxw5pD@d@qgf22^I+%YE?{fqPrOxM0Z;rL&hNYbFtThjA0z5t6I!lQ-(Su zHqL*P?pV1~r@-?!=+XZMT`2Wf>(C9;AoTfR=ppJFhF=PPQkvj0BhzCMy*u8b3I4+c zTn=^eqBofL3yC9WTlBMqacW)9+XmbhBH^l@J_!U`Mxf;cT0x+dgi%FAj}yjR6kr~T ziK2`+=ix~_ji<1XZ8iK@i)XM6&*B|ChX#Uc=F`!FMTEQrk@95p@H=b@n5$G zyqbX55^yb{tRvv{jPnKp_HX3Fx{2I3lk*!`fGt>#Ixc$?Tlss7za6MYBRMx=I|=VV z8+PI#i#kNNGJ@``Fx}~bt`4^&47Vc;cTWgzI(-!dT)(%mxQ~x;PapX`OtzHD7IO9b}667M^4`(zTt=8IPX_ zu^hK@)&>RbaQ0=A58#K*$?w`we$hPG&s0CaBs<85=@9)tj7RyoDnh6Ft9`cLO_#(2 zqrdV_KJ%kAjLtMun$AD{afpm`2CWSB0P`x|Ahb}J1$vIK6MKmp1U0-X_v3woH=tPD zfZa%U=mzTPt8AI4=>BQCe}>QESzL#2>HT*Yh41P0Ilj&3`7Zy!>iZG1@e_Qwz_j?8 j#runze090wBm*F`jK1a`-ORDqIgcf|Rg~4}?b^Qp{+$sr diff --git a/Breitensuche.java b/Breitensuche.java index 452add9..9db985a 100644 --- a/Breitensuche.java +++ b/Breitensuche.java @@ -55,12 +55,12 @@ public class Breitensuche { // Erstelle Varianten, bei denen die Reihenfolge der Nachbarknoten // modifiziert ist. Dazu - if(g.getVertex("Köln").getID().equals(pVertexID)){ - System.out.println("Köln gefunden"); + if(g.getVertices().getContent().getID().equals(pVertexID)){ + System.out.println(g.getVertices().getContent().getID() + "gefunden"); return true; } else { - g.getVertex("Köln").setMark(true); - searchQueue.enqueue(g.getVertex("Köln")); + g.getVertices().getContent().setMark(true); + searchQueue.enqueue(g.getVertex(g.getVertices().getContent().getID())); while(!searchQueue.isEmpty()){ Vertex v = searchQueue.front(); List ngbrs = g.getNeighbours(v); @@ -84,15 +84,6 @@ public class Breitensuche { return false; } - public List copyList(Listlist){ - list.toFirst(); - List copy = new List(); - while(list.hasAccess()){ - copy.append(list.getContent()); - list.next(); - } - return copy; - } /** * @@ -102,22 +93,22 @@ public class Breitensuche { public boolean findVertexByID( String pVertexID ) { g.setAllVertexMarks(false); // Markierungen zurücksetzen Queue searchQueue = new Queue<>(); // Speicher für zu bearbeitende Knoten erstellen - + //copylist entfernen // TODO: Ändere die Breitensuche so ab, dass die Knoten so abgearbeitet // werden, dass die Nachbarknoten in alphabetischer Reihenfolge // besucht werden. // Nutze dazu die Hilfsmethode getVertexFromListByID, um aus // Liste der Nachbarknoten denjenigen, der alphabetisch als // erstes kommt herauszusuchen. - if(g.getVertex("Düsseldorf").getID().equals(pVertexID)){ - System.out.println("Köln gefunden"); + if(g.getVertices().getContent().getID().equals(pVertexID)){ + System.out.println(g.getVertices().getContent().getID() + "gefunden"); return true; } else { - g.getVertex("Düsseldorf").setMark(true); - searchQueue.enqueue(g.getVertex("Düsseldorf")); + g.getVertices().getContent().setMark(true); + searchQueue.enqueue(g.getVertices().getContent()); while(!searchQueue.isEmpty()){ Vertex v = searchQueue.front(); - List cngbrs=copyList(g.getNeighbours(v)); + List cngbrs=g.getNeighbours(v); cngbrs.toFirst(); while(cngbrs.hasAccess()){ Vertex vs = getVertexFromListByID(cngbrs); @@ -150,15 +141,16 @@ public class Breitensuche { // Nutze dazu die Hilfsmethode getVertexFromListByWeight, um aus // Liste der Nachbarknoten denjenigen mit dem geringsten Gewicht // herauszusuchen. - if(g.getVertex("Köln").getID().equals(pVertexID)){ - System.out.println("Köln gefunden"); + if(g.getVertices().getContent().getID().equals(pVertexID)){ + System.out.println(g.getVertices().getContent().getID() + "gefunden"); return true; } else { - g.getVertex("Köln").setMark(true); - searchQueue.enqueue(g.getVertex("Köln")); + g.getVertices().getContent().setMark(true); + searchQueue.enqueue(g.getVertices().getContent()); while(!searchQueue.isEmpty()){ Vertex v = searchQueue.front(); - List cngbrs=copyList(g.getNeighbours(v)); + List cngbrs=g.getNeighbours(v); + cngbrs.toFirst(); while(cngbrs.hasAccess()){ Vertex vs = getVertexFromListByWeight(v,cngbrs); cngbrs.toFirst(); diff --git a/package.bluej b/package.bluej index e4d86a5..1898b9d 100644 --- a/package.bluej +++ b/package.bluej @@ -1,21 +1,21 @@ #BlueJ package file -dependency1.from=BreitensucheTest -dependency1.to=Breitensuche +dependency1.from=Graph +dependency1.to=List dependency1.type=UsesDependency dependency10.from=Breitensuche dependency10.to=List dependency10.type=UsesDependency dependency2.from=Graph -dependency2.to=List +dependency2.to=Vertex dependency2.type=UsesDependency dependency3.from=Graph -dependency3.to=Vertex +dependency3.to=Edge dependency3.type=UsesDependency -dependency4.from=Graph -dependency4.to=Edge +dependency4.from=Edge +dependency4.to=Vertex dependency4.type=UsesDependency -dependency5.from=Edge -dependency5.to=Vertex +dependency5.from=BreitensucheTest +dependency5.to=Breitensuche dependency5.type=UsesDependency dependency6.from=Breitensuche dependency6.to=Graph @@ -39,8 +39,8 @@ package.divider.horizontal=0.6 package.divider.vertical=0.8477777777777777 package.editor.height=756 package.editor.width=1145 -package.editor.x=17 -package.editor.y=171 +package.editor.x=579 +package.editor.y=292 package.frame.height=1000 package.frame.width=1296 package.numDependencies=10