From d6a92659987afa54626412552eda3e768b341477 Mon Sep 17 00:00:00 2001 From: Felix-Vimalaratnam Date: Wed, 13 Nov 2024 16:19:54 +0100 Subject: [PATCH] file mais dernier marche pas --- DEV3.2/Files/MergeSortQueue.class | Bin 0 -> 2623 bytes DEV3.2/Files/MergeSortQueue.java | 77 ++++++++++++++++++++ DEV3.2/Files/chaine/Arithmetique.class | Bin 0 -> 2263 bytes DEV3.2/Files/chaine/Arithmetique.java | 58 +++++++++++++++ DEV3.2/Files/chaine/FileChainee$1.class | Bin 0 -> 1019 bytes DEV3.2/Files/chaine/FileChainee$Node.class | Bin 0 -> 522 bytes DEV3.2/Files/chaine/FileChainee.class | Bin 0 -> 1378 bytes DEV3.2/Files/chaine/FileChainee.java | 78 +++++++++++++++++++++ DEV3.2/Files/tableau/Arithmetique.class | Bin 0 -> 2278 bytes DEV3.2/Files/tableau/Arithmetique.java | 56 +++++++++++++++ DEV3.2/Files/tableau/File.class | Bin 0 -> 315 bytes DEV3.2/Files/tableau/File.java | 6 ++ DEV3.2/Files/tableau/FileTableau.class | Bin 0 -> 1099 bytes DEV3.2/Files/tableau/FileTableau.java | 41 +++++++++++ 14 files changed, 316 insertions(+) create mode 100644 DEV3.2/Files/MergeSortQueue.class create mode 100644 DEV3.2/Files/MergeSortQueue.java create mode 100644 DEV3.2/Files/chaine/Arithmetique.class create mode 100644 DEV3.2/Files/chaine/Arithmetique.java create mode 100644 DEV3.2/Files/chaine/FileChainee$1.class create mode 100644 DEV3.2/Files/chaine/FileChainee$Node.class create mode 100644 DEV3.2/Files/chaine/FileChainee.class create mode 100644 DEV3.2/Files/chaine/FileChainee.java create mode 100644 DEV3.2/Files/tableau/Arithmetique.class create mode 100644 DEV3.2/Files/tableau/Arithmetique.java create mode 100644 DEV3.2/Files/tableau/File.class create mode 100644 DEV3.2/Files/tableau/File.java create mode 100644 DEV3.2/Files/tableau/FileTableau.class create mode 100644 DEV3.2/Files/tableau/FileTableau.java diff --git a/DEV3.2/Files/MergeSortQueue.class b/DEV3.2/Files/MergeSortQueue.class new file mode 100644 index 0000000000000000000000000000000000000000..4e49a34e82b6a1cd200c6a274b14bb906d11b770 GIT binary patch literal 2623 zcmX^0Z`VEs1_mdFDlP^l24;2!79Ivx1~x_pfvm)`ME#t^ymWp4q^#8B5=I6#o6Nk- z5<5l)W)00SZUznpPId+^9tLg(9!3U!u=3K9%pCo|($vyaMh2GR%&JtdT2FQcK1K!+ zgbJU`yzJBzpUmPCE(Tr(W-bOn1|fC^VIBq%22n-^KHt=$^wi+|q7tY{?8V8Mc`2zy zj0|QPJ_u95vetwJG{Zm^i1RQ=Fi0{ou$B~Mf{aqZG)fc0ERaTN9tIf(Sw;rVw9?|t z{JcDnW>ZYf7Y7icl6P5u+$!WMI!oEcQ#S zC;_Q;=V9;w2U1>YMF}T^7lSuDgAWgbFM}V7=YlJXOHy+g8JP1+OBfkMA#t6VuOCp9 znO72AQk0sQYc0gUz!1R05Xcb3$RM7Zn4RjJpO>6i5}sL-;hdjWT#}eqQq0Jph8&Yn zFCzOI8b(|UAq=7H3}HMB;S3Rs48mZ4pjybtz*+#Z9u#m82Z3W2YJg@K2SXGi0|UsQ z7#@aLkSXk7^*MQr3@pz1DXEMM{63j^seYxoNvTC4ptQiqz#CkWn4ImKSODd724|+{ zC6<&Hr7|-3*@ReGA=!jTLpC8H)^^r*P_Kc58=N^I;!y9Q3o|lA+k_yS2PtN78UwKz z-4yJinqiC#DP%eqhl$vQ85vk|6EpKb=`k9j0yPrY88R3dgt165GH?awmlh?bx@CfL zjWBANrw58}Mg{?={QQ#QlA^={-_(+f{FGu2hFnGlCPoE*HimpIh608{c7`HQk}GCp zPyuOyl-HSgW%=2u`jC_WNri5S$tC$km5dBCppgW2CR8EBaF4{il$_LJ6`%b4?9u{g zxe8VWF$h@%MPo>1K`OE&R5`Mzp-~G>31CB^MmQ(tSLd9>;^Nd| zc7`%W22~6{VRI@wLj@y)9Db#Y3~Ug8F(@(!GB7cK04oC{sH$UNWQb#6V31{CWME`q zU|`kS&cL{lfq{XMA)bMOfekFk!oUftJs6n4O7j_*8JHOu7>u-bGO#l;uqF33129b~!X|6hT83UQGf z13Lo)gERv>gA9WZgDitQgA9WzgFJ&Cg93vcgA&*^+ziZr8Mqi3e=$f&KwXv0zy+!w zp{{xaYD6$FFie351Jq(4Z79Q8YbS#iBf|j(U2Pa+Cxbo{!(0Y2sM`)O=t7*n{QnUh zZLn96gf_ywf<^grm?dJE`kw0`0$+=Pi-Cbbje&zfgF%Wxlfi^Ri@}{iharl=kRh4D zh@p(ZgrT0nlwlHs1=!m>46J_`IM^9D?1ZGHq5e)`;ABW;NQ0)H^9;-kYzzzxSx|rb zX!+{wgT~1s200y379%TGZAsQ048}VcEFs&;u~8A4h9DX83soNZ3YJh zLk3p{GX@WaKn72SI0i3pYZ7_!0Xl#wBifsrAHp@accr!X>> Queue trier(Queue file) { + if (file.size() <= 1) { + return file; + } + + // Séparer la file en deux moitiés + Queue file1 = new LinkedList<>(); + Queue file2 = new LinkedList<>(); + scinder(file, file1, file2); + + // Tri de chaque moitié de façon récursive + file1 = trier(file1); + file2 = trier(file2); + + // Fusion des deux moitiés triées + return fusionner(file1, file2); + } + + // Méthode pour diviser une file en deux moitiés + private static void scinder(Queue source, Queue file1, Queue file2) { + int taille = source.size(); + for (int i = 0; i < taille / 2; i++) { + file1.add(source.poll()); + } + while (!source.isEmpty()) { + file2.add(source.poll()); + } + } + + // Méthode pour fusionner deux files triées en une seule file triée + private static > Queue fusionner(Queue file1, Queue file2) { + Queue resultat = new LinkedList<>(); + + while (!file1.isEmpty() && !file2.isEmpty()) { + if (file1.peek().compareTo(file2.peek()) <= 0) { + resultat.add(file1.poll()); + } else { + resultat.add(file2.poll()); + } + } + + // Ajouter les éléments restants de chaque file, s'il en reste + while (!file1.isEmpty()) { + resultat.add(file1.poll()); + } + while (!file2.isEmpty()) { + resultat.add(file2.poll()); + } + + return resultat; + } + + // Méthode de test pour le tri + public static void main(String[] args) { + Queue file = new LinkedList<>(); + + // Remplir la file avec les arguments passés en ligne de commande + for (String arg : args) { + file.add(Double.parseDouble(arg)); + } + + // Tri de la file + Queue fileTriee = trier(file); + + // Affichage des éléments triés + for (Double valeur : fileTriee) { + System.out.print(valeur + " "); + } + System.out.println(""); + } +} diff --git a/DEV3.2/Files/chaine/Arithmetique.class b/DEV3.2/Files/chaine/Arithmetique.class new file mode 100644 index 0000000000000000000000000000000000000000..f552954be7def22b4205baa4a5b7d51fb92f43fd GIT binary patch literal 2263 zcmX^0Z`VEs1_mdFQZ5E224;2!79Ivx1~x_pfvm)`ME#t^ymWp4q^#8B5=I6#o6Nk- z5<5l)W)00SP6iGJPId+^9tLg(9u(!lmBl5gxr_|V`K2X{45B_@gEI5=1Bx>9N`gy@ zQWJBnIT-jD863h=OEYtFQmYiw@=J^IGK&;S^HLR3D+-EIi;FY!^Au9^6!P**5=%hr zg8ZEPyu{4nRE5mEvecsD!z)wuxEKT&1lbvcco>8kL>L)_vDn1Oz+M2dHz$vgK~w|c z7O52!geM{pgujlA4}c#KmC1V9di{0`dq)W?o5HVoqr)NYIRj!JNT@ zk%7GoB;udO$RMWSiEJ*^0Bew|tauo#LB3+mPfJTJVrQ^rWROKz(5 zgLrOYcB*rJUUFhdcxFk4bADcNNn&0}F`8jeomdRxUJ$8m*Si%HH2|RST7=jo=c^JYN!WkL3(o;)(Q;Ule(^Ju77HYi^10#bk zJ3|yB0}ni;3&F_&k^=dCGV@aXN^_G^i$W5UazN=MH!(906rs^b=>%$;W*8#_Z*WOs za<*?`0a!gdLn0%CFczhZ3|ztarA5i9pbWyuAc$!PSuC_1QLC2iOD7TMU{*UGmujOR3XGo9*KD=IjO}e zKKc3Cr3KcQL4qWLqA{ehAQg*p7_=D}7_=A|7<3sJ7_1l=81xw!7@`;$7%CVT7`!Cegygm{D9mIqV>V-7&R`(P zCZq!9tFeIi3X*I>YGA$?D~K;3$tI)$=CiSxv5T^=Vqjpn0|ik6$zaLE5WbvYF|vdi2MUiTx`V+9F4DrnxcuKt?VSv6j0`Lb z7^F5autSXB!Qi=z!H0oi8w3Ax25wLs1%R2tzMB}>b+$2t>|%%j%Wh;~WDsNA$hd_e zh=Be+GUAR(6I2b_Q*Bh6F}N28MqOj_eGQ z>t<8 literal 0 HcmV?d00001 diff --git a/DEV3.2/Files/chaine/Arithmetique.java b/DEV3.2/Files/chaine/Arithmetique.java new file mode 100644 index 0000000..5fa8225 --- /dev/null +++ b/DEV3.2/Files/chaine/Arithmetique.java @@ -0,0 +1,58 @@ +import java.util.Queue; + +public class Arithmetique { + + public static void main(String[] args) { + if (args.length == 0) { + System.out.println("Veuillez fournir une expression en notation polonaise inversée."); + return; + } + + // Utilisation de notre implémentation FileChainee pour la file + Queue queue = new FileChainee<>(); + + try { + for (String token : args) { + switch (token) { + case "+": + // Addition + queue.offer(queue.poll() + queue.poll()); + break; + case "-": + // Soustraction (attention à l'ordre) + int b = queue.poll(); + int a = queue.poll(); + queue.offer(a - b); + break; + case "x": + // Multiplication + queue.offer(queue.poll() * queue.poll()); + break; + case "/": + // Division (attention à l'ordre) + b = queue.poll(); + a = queue.poll(); + if (b == 0) { + throw new ArithmeticException("Division par zéro"); + } + queue.offer(a / b); + break; + default: + // Si ce n'est pas un opérateur, alors c'est un nombre + queue.offer(Integer.parseInt(token)); + break; + } + } + + // Le résultat final doit être le seul élément restant dans la file + if (queue.size() == 1) { + System.out.println("= " + queue.poll()); + } else { + System.out.println("Erreur : Expression incorrecte."); + } + + } catch (Exception e) { + System.out.println("Erreur lors de l'évaluation de l'expression : " + e.getMessage()); + } + } +} diff --git a/DEV3.2/Files/chaine/FileChainee$1.class b/DEV3.2/Files/chaine/FileChainee$1.class new file mode 100644 index 0000000000000000000000000000000000000000..663310cbc8f3632e0768162da7523bbb18b2dceb GIT binary patch literal 1019 zcmX^0Z`VEs1_mbvYfc6x24;2!79Ivx1~x_pUboDgROgJu%)Hc86+=b_wvvp@Vif~M z23{W|8EY;E4hBwk1}+{3ZU!Dk27#=^vPAuy#JqHU|D>$c6H^!&gpe&z@ykz11-ngzhd~sihdsHps3JPe8qN{kEwNbUjK%*eo!l30=maunD+B%fJ>^s4YM zsDd2Dl9yUh!p@-1$RGq(2e#LwHnvp>pQxYPA;&zzZxPtRbi;`18;e#4X zdLSzp8TeiEl5_HlGxO3R4&z}kV=!lA;K+oBff&p=DCS!;GI02%7MFPB7nd+H@Ob9s zr4~8oBo-H^7Be!ifFhqkfq{vEgMpDjje&`Q36usH7#TDe7#NrsGzA1eiIstYfti7U zftx{#fr&wzfq}sktdfC2R7-m+1Ebb<26ip2EewoX7VPIh318Xy5 z;AAjo5MeN5&}Cp?U}a=rXb@mv1f?qmMzCoH42%qn3=9msT3Z-|k1?>bEN5V0UITUj z$P_lPq&0&cNH+r$w*yGEDuX`MEum1isAz3t5Szuoy_-QQayx^}evn~X7-W4wE)(9u zpuCkqSbGE9P%#Ep1_lNP26hHV27U%-25|-#1|I%r5RGVplj<)s!m=Oh*vrxr6Zuz-SwL4kpT zfr)_ujJX+j7#JCN!8|?&1_pix0XScffsuiMft5jsfr&wwfq_AbfeEaKOKUp=qn7qo z2KJ2%3=E76A`A=+d<@JC3=G^1EDSshoD95B6Ga(Vpe!*4aj+c{43c14ia~~ffq{#G Nk%5Cjib0lv3jn&HYbO8z literal 0 HcmV?d00001 diff --git a/DEV3.2/Files/chaine/FileChainee.class b/DEV3.2/Files/chaine/FileChainee.class new file mode 100644 index 0000000000000000000000000000000000000000..7937da74fdbcce83379d3dc036ed7d792a244b75 GIT binary patch literal 1378 zcmX^0Z`VEs1_mbvXD$XN24;2!79Ivx1~x_p@vOwMME%l|%p85kq~emI#N?8|($vya zMg}&U%)HDJJ4Oa(4b3o41`Y;Jb_OmU25tr(Mh0%T%$!u`jKs{m)Ko?Wmg3B+R7M6y zPj&`AMg{>SITgSBlvFMTUIqb>b%Klxq8dJ63v&|l()In5vQm>vtRbcg^Du}oh%z#; zWTYmhFfs`Fpc`Wia)USzg9KPrNn&OWCj&2o6c2+mSRgO8qJ)cqgF%*uL5@M5k%2w4 z*fqDHq!R4@D3DS`9tI@_Wkv>;l*E!mkPR3vVP{ZfWZ*@%*pQ1sg+U$UcnwAd0S#nF zS!;%|GiWg~@Pmy3hafcMID<3O^Abx+i&7aG#F4dtgTp4o)!NRQk%7fIKP8osf!`-H zFV(L!Hz~C!Brz!`m63rpKP@e_2uD~&F*5K5mn0@<`z97Z)w5}YxLRvQF*2|eT%gJ?#Q1&1U=l#zieIKQ+gITaKysL4wY zg?0I2oA!Fi5a7@UlbwWW>P8V9a0wbwxSY&kPJETH6?8W-_oc zZUEW3g+akb3&N1x${++{9cSRsV%*9g260HrRt9$M4RD7jF>o+2Feo#yGpI0dGN>^K zGN?1iFlaC+GiWksFlaLvG3dY?!}*6nj-A02>KJndMg|MGV=NdL85kKD7=$4fvNJAc z-~utXFeo7G0);#SgCW>Fb_OPHH&oLs8LXgQQ)FNUo5s1DK_yaaJA)d?3`m?n%rJvG z!kU4Rft$ew8ke$AN3d#bVPFS^HL?~T1{SC$TLwF@_w5-Rz{!D$ftNvr!I6Q1L5Kmw O=3sDQ0F@66AOHYqhX4=& literal 0 HcmV?d00001 diff --git a/DEV3.2/Files/chaine/FileChainee.java b/DEV3.2/Files/chaine/FileChainee.java new file mode 100644 index 0000000..0d598eb --- /dev/null +++ b/DEV3.2/Files/chaine/FileChainee.java @@ -0,0 +1,78 @@ +import java.util.AbstractQueue; +import java.util.Iterator; +import java.util.NoSuchElementException; +import java.util.Queue; + +public class FileChainee extends AbstractQueue implements Queue { + private static class Node { + E data; + Node next; + + Node(E data) { + this.data = data; + } + } + + private Node head; // Premier élément de la file + private Node tail; // Dernier élément de la file + private int size = 0; // Taille de la file + + @Override + public boolean offer(E element) { + Node newNode = new Node<>(element); + if (head == null) { + tail = newNode; + } else { + newNode.next = head; + } + head = newNode; + size++; + return true; + } + + @Override + public E poll() { + if (isEmpty()) { + return null; + } + E data = head.data; + head = head.next; + if (head == null) { + tail = null; + } + size--; + return data; + } + + @Override + public E peek() { + return (head == null) ? null : head.data; + } + + @Override + public Iterator iterator() { + return new Iterator<>() { + private Node current = head; + + @Override + public boolean hasNext() { + return current != null; + } + + @Override + public E next() { + if (!hasNext()) { + throw new NoSuchElementException(); + } + E data = current.data; + current = current.next; + return data; + } + }; + } + + @Override + public int size() { + return size; + } +} diff --git a/DEV3.2/Files/tableau/Arithmetique.class b/DEV3.2/Files/tableau/Arithmetique.class new file mode 100644 index 0000000000000000000000000000000000000000..425fcb84ab7dfeea61ca9a5a3998d07e651a871b GIT binary patch literal 2278 zcmX^0Z`VEs1_mdFGA;%t24;2!79Ivx1~x_pfvm)`ME#t^ymWp4q^#8B5=I6#o6Nk- z5<5l)W)00SP6iGJPId+^9tLg(9u(!lmBl5gxr_|V`K2X{45B_@gEI5=1Bx>9N`gy@ zQWJBnIT-jD863h=OEYtFQmYiw@=J^IGK&;S^HLR3D+-EIi;FY!^Au9^6!P**5=%hr zg8ZEPyu{4nRE5mEvecsD!z)wuxEKT&1lbvcco>8kL>L)_vDn1Oz+M2dHz$vgK~w|c z7OpXZEJVE|rD@g<;B~b8tgM8=1$e@O-3Fb_sz=Ng$AqEBpKOP2u zh5$we@!Z7hROkG>>jxKoka4`fkgz+$hGej^laHXe~_@)*YC#I*O$2!z5 zAqGYUKX!&_Mg|^uSQnP2GBU70QYF7nW?rgaX>L+#5jbTtGO*+(X6At+I~p?>G{YDf zc!Nt4le2vj3&85x8Il+ogs~`PWZ(+UFD*(=g(OZvWZU&X34oD7z$rh!q`0IgvA{RA zBqKkin1dmmk%8G(fsunDlaavy8bUewMa2p!sR}vjhgX8qA|$JW1(1pXD+NY=Him32 zh8%`mc7{AqT;($|sDNyO6i}IYW%=2u`jBveM4ww?a!GzsB_qQOetvdofi-53Ac>%845=(g#iATJr2N4}rZsX3fg0hQn3EHnS(0ka$iU;7mzP@P zoRe5woLbDzP{hcfis2`0PGx5(VPufQuauF24dO2bMTRH_CI%2-VqgT7?F@_zF$@e0 zvJ8w2j0_A6tXkU{7&kI7FfcO2GB7Z(fdv^EI2qy?;vq_zCNVHGa4|429?;r1i-Bho z1G^CKHU|EUyBS0yw=;ca#$?7W$+nF_Vl~L} zbOr_n76t|eZ3YGgEd~Y#T?PgQD+UGzeFg@GCLm@mc(;tNQ!32A`&Y;0!iqU@^}7#J>qEMs6`UF$2v+QI1&*yt^4}BZcg@GdS)CTabg$E2u5Wx`V+PCeXsdxcuKd?VSwnj0`Lb z7^F5autN;r!Qi!v!Iyzy8w3Ax25wOF1cI5uzMB}>b+$2t?qY}p%Wh;~WDsLq!?>Oy zn1Kl#+hq*0;CNwWU}fNCU}NB8;9?MC;APNa;A7asAjoi!L5SfYgDAs$1~G=e4C0L3 z3=)id4AP7S3^I(y4DyVQ3<`|?42p~)3`&e~3@VH{462Oz3>u8J47`lZ40?>c4El^q z7z`QLFqko}XE0&hz+lR_pTV3Vfq{X+hC!I`KLbAlD?39XJA*bmLn0$11H(TCM|K8D zb_PjCetv!)ITan1zYJQ8j6WF!elYO~XcVcG<=4W7LNM>MQU}8vNNM&GP;A3E7 c$YNk*NCT4@3 queue = new FileTableau<>(); + + try { + for (String token : args) { + switch (token) { + case "+": + // Addition + queue.ajouter(queue.retirer() + queue.retirer()); + break; + case "-": + // Soustraction (attention à l'ordre) + int b = queue.retirer(); + int a = queue.retirer(); + queue.ajouter(a - b); + break; + case "x": + // Multiplication + queue.ajouter(queue.retirer() * queue.retirer()); + break; + case "/": + // Division (attention à l'ordre) + b = queue.retirer(); + a = queue.retirer(); + if (b == 0) { + throw new ArithmeticException("Division par zéro"); + } + queue.ajouter(a / b); + break; + default: + // Si ce n'est pas un opérateur, alors c'est un nombre + queue.ajouter(Integer.parseInt(token)); + break; + } + } + + // Le résultat final doit être le seul élément restant dans la file + if (queue.taille() == 1) { + System.out.println("= " + queue.retirer()); + } else { + System.out.println("Erreur : Expression incorrecte."); + } + + } catch (Exception e) { + System.out.println("Erreur lors de l'évaluation de l'expression : " + e.getMessage()); + } + } +} \ No newline at end of file diff --git a/DEV3.2/Files/tableau/File.class b/DEV3.2/Files/tableau/File.class new file mode 100644 index 0000000000000000000000000000000000000000..42ef4dde2fc5e5f71dde74412cf4456c348f9a81 GIT binary patch literal 315 zcmX^0Z`VEs1_mbvVRi;4Mg|tQ%$!tq1{OvJfvm)`ME#t^ymWp4q^#8B5=I90#H{?% zlGGwb22l+kbZKkNFh&N>;LP;A#FEmYR7M6ijSyF`AbU}2NoEm9n}~)crandnRt?P% zS8GNFwvxomoSalf24)RSPeumz)Z&t`%oGSeijhIX#?=Z_yB($wBLi1(erZv1D#$a8 z44fcJ59D4pMg~R(W(E*oVPRxoWng1qWMF4tU|?e4U}0q7WZ;7Hxmg$)co=vYKtaLB QzzV!Z literal 0 HcmV?d00001 diff --git a/DEV3.2/Files/tableau/File.java b/DEV3.2/Files/tableau/File.java new file mode 100644 index 0000000..f0452b1 --- /dev/null +++ b/DEV3.2/Files/tableau/File.java @@ -0,0 +1,6 @@ +public interface File { + void ajouter(E element); // Ajoute un élément en fin de la file + E retirer(); // Retire et retourne l'élément en tête de la file + int taille(); // Retourne la taille de la file + boolean estVide(); // Vérifie si la file est vide +} \ No newline at end of file diff --git a/DEV3.2/Files/tableau/FileTableau.class b/DEV3.2/Files/tableau/FileTableau.class new file mode 100644 index 0000000000000000000000000000000000000000..88e2b3f26193f9cfcf7f46cef4d6b737ea501b4e GIT binary patch literal 1099 zcmX^0Z`VEs1_mbvGcE=u24;2!79Ivx1~x_pfvm)`ME#t^ymWp4q^#8B5=I6#o6Nk- z5<5l)W)00SP6iGJPId+^9tLg(9!3Ukx6GW>ki?{%)WlLo2DXyK%$%H5Mg~StkUBmd z27Ztt)|Aww(h`t}AP<8ONQ5~pGY`ZU;b9PE5MyNENX<#jP0cGQW@HeK_Ca@oH5UU1 zg9HzQB!d(q1AA(5Nmyn|D%d$u>4`bPC5a`et`*6t1tppJc^nLK zj0^%ki3(|%IjIV%#U%=5nJKAU4AKk=AYUsoGKgv*SsGkYl$n=qtr^D7pv=g?0`egv zgP^lxfTOc#h--~}3ULNS1`Y-$21W)Y237_s1{DS#21W)| z1_lNu1~mpIP{cAYGN^<38VpRJ^a5t{Gw^_EAu!F#zz9ls42%q#3=9mOVDlIlWVN<4 zFlsSxWnc#pydXkAOF(2V1JhOp;f)Lo42%p~3=9lX3~USx44e!s3@i+s46F=%3~UU- z3|tH{4BQNi4B8Aj3`|gCnHiWE7#LKwwlD~5ZDA154%PxuED0cieFa+?1hgWzFtD>E zY-M0a7%#-Y!oa}5&%nhXz#zpS$e_X?1oe+D10#bTgFe*wDh7!0j#}Fo#Ah<_?q-mV z6q4P}Aip1Eyw(;5ULzkEixF%yFT!SCh|MWm8Q8TqfCC2PGdTu!1_lN(26hH<20;c% z25AN<22}=W22%zZ273ls1_K5L24)6EL8yBS85kM38H}KzD9gaez{tSBz^b){fqe}; zwAjFcN(_vkj09C`09DEhQaX!)on<)#3o}Ry6F7h&TGYYTu`)1mJ1{aZL9H}qFaf*P F6aWSt!i@j` literal 0 HcmV?d00001 diff --git a/DEV3.2/Files/tableau/FileTableau.java b/DEV3.2/Files/tableau/FileTableau.java new file mode 100644 index 0000000..68aa114 --- /dev/null +++ b/DEV3.2/Files/tableau/FileTableau.java @@ -0,0 +1,41 @@ +public class FileTableau implements File { + private static final int CAPACITE_INITIALE = 20; + private E[] elements; + private int taille = 0; + private int debut = 0; + private int fin = 0; + + @SuppressWarnings("unchecked") + public FileTableau() { + elements = (E[]) new Object[CAPACITE_INITIALE]; // Création du tableau initial + } + + @Override + public void ajouter(E element) { + elements[fin] = element; + fin = (fin + 1) % elements.length; + taille++; + } + + @Override + public E retirer() { + if (estVide()) { + throw new IllegalStateException("La file est vide"); + } + E element = elements[debut]; + elements[debut] = null; // Supprime la référence pour éviter les fuites de mémoire + debut = (debut + 1) % elements.length; + taille--; + return element; + } + + @Override + public int taille() { + return taille; + } + + @Override + public boolean estVide() { + return taille == 0; + } +} \ No newline at end of file