From b6f0e8574e05b61e63457ae82cef7d452d3ccbf8 Mon Sep 17 00:00:00 2001
From: Gianluca <gianlucamastrolonardo10@gmail.com>
Date: Thu, 28 Mar 2024 19:59:49 +0100
Subject: [PATCH] Ci siamo quasi

---
 .../Lab2/out/production/Lab2/BFS.class        | Bin 5015 -> 5770 bytes
 .../Lab2/out/production/Lab2/Main.class       | Bin 2217 -> 2234 bytes
 Algoritmi_2/Laboratorio/Lab2/src/BFS.java     |  21 ++++++++----------
 Algoritmi_2/Laboratorio/Lab2/src/Main.java    |   4 ++--
 4 files changed, 11 insertions(+), 14 deletions(-)

diff --git a/Algoritmi_2/Laboratorio/Lab2/out/production/Lab2/BFS.class b/Algoritmi_2/Laboratorio/Lab2/out/production/Lab2/BFS.class
index 348d385d60ec99810e1b66d5c2b3eee9f53aa096..041e207f9977a33c57a19c4ac323e3e47dc23d2a 100644
GIT binary patch
delta 2220
zcmaKs+jCP@6vn@uCOK)EUO;S{(w54_mef*bgbpN9M>;|~av4QI)R$u#OWGu-Hisf0
zjew#cTJ)5g0-^{gRG}b&f<ghsf{GMThByBKAAEDXRKJ}Qj_JTS?VRkr*V=3SzO~oh
z+bTEKxGxW%Is@Qg+~{-r?TMubD`@rL9<&LJYE?Vc+K3u!shy>1k&qe_D6D#V^4#0j
z18xK{LjfJeq>Rh-aHO_Di$p>}J*>rY5XBTXO7MaQ9dHUbf(+M@4IRrAbb7EHFA5a2
z8r6=Ps?p?G>A@<zBv2Gp+d>UmEU4;>!}?N=;<_5s;{ugc#&6EMDl%af>K)-&3t765
zQ1G$`Yv46Pj*9VaxUkNHSMaL9=%5;nM#C{}UN{zxYE9Ahh`?jU9>?9rVf!RwjWT9@
zVDci#`kDu?<6Z$*P>bnmI2M;-HhS;|HW|Oz{cf4(Et#a-=oUqVsXcFd@D94UM{RDN
z9qx$h$96e}gxF_jN{cvZ+)$1SA9GaXrVARV4+yMEXP;=4DTUIiq^-tH*M<b^!l@qD
zJJj}hA$_UV9CzWeKu&#qeZ_pOS@Tzjd?&th<9l3D@Pn+}Re_2B9a1>fskMb_&GMMV
zoUI0Rtz(72_Nt82Ogoxc8r4{HBot3foU3VV%i04Oe(6GItc=+C#ESON9o(PE@L%v;
zD?1~Qd3xy(4QeE^Fsz4I7f(|x7D{w9MAUdZ6j$)0z@*z$jet$FD)>pD{Qq4AoTf1L
zx(hb;oZvSH9*$fbJ7DnJ17l5g$&4*r%tIExZrJIPja+QytT46FjcwS@nY8YpRq*d!
zyhmG)aXouTY%%t`7bc|t;|#q86R;DzIC>sWVmC()#L<ZNu?J523|P?y@Bys?<M{g_
z_A=g7Y{Ey_N0OOXhy6G}nvc1sf-7c>PZ-1WKS+Pm>kz$qr_!w)&Z1#VQ&6JdQw7z-
zm?9L+RL~Ik9X1<2qmK=Tner(t;kU==&ACbZ^`6BU_&(wvA%2)XCVnU8TKIz&{$Lt^
z0)Zv84b_w*p|da@o6(1(X?$5mGls-By$;c<*JAdMH;EM-8^(QU=!a6!687^HY*%g*
zVFz=^HON}~7#vJ=>ujc{apc-@g2-yxktBqf$PQakA>*9D$y797-Ze)1J8yv{y&IF$
z(u2%tN^i%bmh^L0u5*_3-InyNY3Vch4)wE3%#)MS%^0S1=`~XN)GSIjuH+Xhe0Wl1
zzvf>h*_nb&vPz3=kww;Ik)5^3&RS$UEwUbqY%R%7jUbaTOfu<pC$jEQ#R<Nw)X~E`
zG@A$LV%@t+%l078>#(0hOA-?n_f?lB5g9<VADZATae3`Yw5JyP@t}a;>2>yFmNY#g
zM{@)(Lb+e@+P#Y0e-v@AatbTJ6I<=8mW$KMXmlj8)|*JDS-%6$1N{HzL?03CylOxl
zuPP|j!4Ax)gaRDob?L<<_TL;H{sJ7svuvO?HpOxVU&-TN%`(UqYJ@_c2XLDGu5jLE
zm9Yz7uuvkk_9YUso22;+`%1nNT{z48D*LaCsrNFuyrt%AA#DdO+W>8{%?sct81ol$
zco+Xf;~$J?UdD4wavm4V>f$1+E8mDZ-`FHJ%s-8iB_~koPuOpb9IR7K5^wry#+Kfy
zj(zM&lqIp*Yd^xRS*fa&r}Ug>unVlpS14xaaTw&KxkSB}Q|jx@RF>vC>jKqrhm`EZ
z{i!;rSqxIif=bQBd}c;!Hf>U~X_J~wbzc+bBB5;fhRMx`_ggBygdxt{99_e8{0#5E
Dc9jKN

delta 1628
zcmZ9MiEmUz9LK-&`i|{(x6~HFZI{cM5O&*cj9_$W5v*5(V$@h9CMLTZEQ@;-TI%g8
zASx;-uN>vF#RJ5vg?6!MY%$eT5)<{WF-EK3-+Rjx%x>n*%<q`*XJ&r0zxC+K;MKXy
zKLFT(@>nowc4u(6gRH{B?WuuOVpo4Qm*_0!a$7U~*<zsv+t3z7BXS|+VJldf+}702
zAOa|c(2E@k^_f&YpU)PGk7Ntke6cIvn^S0aci1<(!_~Ki*RJXo@4gWFvCI9(N`|ZP
zJYI0{VhAtcWp~QFJsiZVc+Ej6gxB$gyU|+iZm@5;Sg?OrYS3LD=uso?xxj>atdcb8
zn!$Y~tYBJ$Ac}1bLhJ?Dx3HV-9*!R1yx4=WOHi@+1e`IB4D4lFiz>0eWL!1Ec$1?=
zzBl&aEsn(cHm!=kcd(x}=2Sm2u9~*#nA;PYQG4B%@Dn8oew>RRMl;^Ud+a@nC-FXe
z7W(iI4&Wec3DT*j@d2$0%P@iuafr!RbL?V}={va4VH}~fql{V389&D{=J5T8=<j<S
zr`L(~bXy90@f_ATXmoJWL3|Ev%0Y*N&b5ESFmQ@K22OLyr?7>su*@)6SZ3W)eca8~
zo*_<X!RG65V#N7~I9bN{I0JZC<IHND*$PfGKJ_3B#JQqCRN*e#hKcFp$R7JS1jqL}
zPOlT1A$hA$;NZ+0S}G9tcn~7~V-fF~bzKy@scu=P?0t;M!G*3JoGdB3D|4T)C%bD>
z+DK&~6UO32w10-PUbfM?KbURLO^<5ygIHBT&u~p2y%!rb`W3y_6^(vcqaUfDckrs6
z;}x1m_jCB@;&mhXYK>kykG{@BH>7$zv3>QwQS5yU*Na`L#dd44U0Upv7CWWIp44Io
zwb<Ph`}qxGC5JCoy#6P)bnTon^J3d8V)-y|*X5FhSOX4EA{|{a409|VEu&`|+a|GH
zVF-bUS;lkT<Rsb^l2*i;#Jys=LwXM?7R}P69Wf(z8O@txarv%UB4MS1-yep3mj8c$
zk?J<R>TctE03N-?L$`6BmHj1}Fvg;}fcr7dVx7R#DB~G?ixe(<)xVCO9eh*H^TtcD
zruD9+@dfuqu2Y(M<T^?3s}j5Nh@|l~E7(6{c`p2!A<oF9u7zbU{2Mi_#5@0Ds9%WR
z&~KE2yglOA@|H}*n#$O@DK-vg5@Ch!&7}Dq8n;|RG-+MHKx-MV#9Eu85vz<sq-2dU
zf0YN^=*7>l{Rs{D8BxsgExL*p{Ho!Aghoo}3Q2HF1j*)&7tAWgN4?8o^4q}DJw$c#
X5(%3>GsKxwSRgOTMNW>>Xkg+$t=cS-

diff --git a/Algoritmi_2/Laboratorio/Lab2/out/production/Lab2/Main.class b/Algoritmi_2/Laboratorio/Lab2/out/production/Lab2/Main.class
index 90720ff9e33207c51bb006f685d4752eb3ee7351..bf9286671bb03c9fefd0e19a3864335107bfa92c 100644
GIT binary patch
delta 187
zcmXYp%L)N;97Ye5am$!-E4$yu%EsJC|FW|qDYs!S8}C4tER<Mz0ZS`o%Cnh?&FTB<
zbRO2*I<I}tZYgPrt;7~5h9ARI;{4$Lmn&T*zI2pyr2Ra8bg7_|0&XGcpp<=)AA}e|
z^MyIodZvEar0?T81sWJQ6zOBKz+y{@9Tl$B7)1f^mtn#*dO1$an3JH)A@T!~RN1p+
Kg+~1{%}l-)l^^Z^

delta 170
zcmXAhy$-=(07Va_^%L|5vH6CYEJ_>0mza!1B>u|Y$qSf>)gmbqFJLq^A@OWVmy_I^
zbMMP|80Vm6_oe6vR|;43q;L{+f88IR6rSilZy&X3p^^ozZ#3V`M-)eI%6>aSA1i}Q
zxYO>_1|@9DI8+#-v&3MF$(||~>P+Ijo4hb%9;X5)7O|JY;>Zf0G&K&a*`Uw}gWT*3
D+%p{h

diff --git a/Algoritmi_2/Laboratorio/Lab2/src/BFS.java b/Algoritmi_2/Laboratorio/Lab2/src/BFS.java
index 0641c79..e42eb55 100644
--- a/Algoritmi_2/Laboratorio/Lab2/src/BFS.java
+++ b/Algoritmi_2/Laboratorio/Lab2/src/BFS.java
@@ -159,14 +159,14 @@ public class BFS {
         return alberoBFSdallaSorgente;
     }
 
-    private void cammminoMinimoImpl(DirectedGraph bfsAlbero, int sorg, int dest, ArrayList<Integer> path) {
+    private void cammminoMinimoImpl(DirectedGraph bfsAlbero, int sorg, int dest, ArrayList<Integer> path, ArrayList<Boolean> founded) {
         //Se ho trovato il nodo
         if (sorg == dest) {
+            founded.add(true);
             return;
         }
 
         //Se sono nella foglia sbagliata
-
         if (((Collection<?>) bfsAlbero.getNeighbors(sorg)).isEmpty()) {
             //Pulisco il percorso corrente perché errato
             path.clear();
@@ -176,32 +176,29 @@ public class BFS {
         //Allora devo ancora esplorare
         for (Integer node : bfsAlbero.getNeighbors(sorg)) {
             path.add(node);
-            //System.out.println(">>> Nodo: " + node);
-            cammminoMinimoImpl(bfsAlbero, node, dest, path);
-            if (node == dest) {
+            System.out.println(">>> Nodo: " + node);
+            cammminoMinimoImpl(bfsAlbero, node, dest, path, founded);
+            if (founded.contains(true)) {
                 break;
             }
         }
-
     }
 
 
     public ArrayList<Integer> camminoMinimo(int sorgente, int destinazione) {
         //L'idea è quella di usare il BFS Albero, perché aciclico, ed in questo modo trovare il percorso.
 
-        //Proviamo con la ricorsione
-
+        //Provo con la ricorsione
         //Implementazione sbagliata, ma l'idea credo sia giusta
 
         DirectedGraph bfsAlbero = bfsTreeDirected(sorgente);
-        boolean[] founded = new boolean[this.myGraph.getOrder()];
         ArrayList<Integer> returnArray = new ArrayList<>();
+        ArrayList<Boolean> founded = new ArrayList<>();
 
         System.out.println(bfsAlbero);
 
-        cammminoMinimoImpl(bfsAlbero, sorgente, destinazione, returnArray);
-
-
+        cammminoMinimoImpl(bfsAlbero, sorgente, destinazione, returnArray, founded);
+        returnArray.addFirst(sorgente);
         return returnArray;
     }
 }
diff --git a/Algoritmi_2/Laboratorio/Lab2/src/Main.java b/Algoritmi_2/Laboratorio/Lab2/src/Main.java
index 85189f5..5b21021 100644
--- a/Algoritmi_2/Laboratorio/Lab2/src/Main.java
+++ b/Algoritmi_2/Laboratorio/Lab2/src/Main.java
@@ -5,10 +5,10 @@ import java.util.Arrays;
 
 public class Main {
     public static void main(String[] args) {
-        Graph mioGrafo = new UndirectedGraph("7; 0 4; 4 3; 1 3; 1 2; 0 2; 0 5; 5 2"); //Num Nodi + Archi
+        Graph mioGrafo = new UndirectedGraph("10; 0 1; 1 2; 1 5; 1 4; 2 4; 2 3; 2 4; 3 9; 5 7; 7 6"); //Num Nodi + Archi
         BFS mioBFS = new BFS(mioGrafo);
         int source = 0;
-        int destination = 1;
+        int destination = 6;
 
         System.out.println(">>> Sorgente delle Operazione: " + source);
         System.out.println(">>> Destinazione delle Operazione: " + destination);
-- 
GitLab