From 448fefd6920f91c60dcbf602156be41f1d0df68e Mon Sep 17 00:00:00 2001 From: "Muhamed H. Asadi" Date: Mon, 10 Oct 2022 13:02:47 +0330 Subject: [PATCH] 2nd Ex Finished --- .idea/ds_exercises.iml | 9 ++++ sll/.idea/vcs.xml | 6 +++ sll/src/main/java/com/tabrizu/ds/App.java | 24 ++++++---- .../java/com/tabrizu/ds/SingleLinkedList.java | 41 ++++++++++++++---- sll/target/classes/com/tabrizu/ds/App.class | Bin 756 -> 1659 bytes .../com/tabrizu/ds/ISingleLinkedList.class | Bin 443 -> 443 bytes .../tabrizu/ds/SingleLinkedList$Node.class | Bin 1363 -> 1419 bytes .../com/tabrizu/ds/SingleLinkedList.class | Bin 2302 -> 3210 bytes 8 files changed, 63 insertions(+), 17 deletions(-) create mode 100644 .idea/ds_exercises.iml create mode 100644 sll/.idea/vcs.xml diff --git a/.idea/ds_exercises.iml b/.idea/ds_exercises.iml new file mode 100644 index 0000000..d6ebd48 --- /dev/null +++ b/.idea/ds_exercises.iml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/sll/.idea/vcs.xml b/sll/.idea/vcs.xml new file mode 100644 index 0000000..6c0b863 --- /dev/null +++ b/sll/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/sll/src/main/java/com/tabrizu/ds/App.java b/sll/src/main/java/com/tabrizu/ds/App.java index 67b74fd..110e8de 100644 --- a/sll/src/main/java/com/tabrizu/ds/App.java +++ b/sll/src/main/java/com/tabrizu/ds/App.java @@ -4,16 +4,24 @@ package com.tabrizu.ds; * Hello world! */ public final class App { - private App() { - } - - /** - * Says hello to the world. - * @param args The arguments of the program. - */ public static void main(String[] args) { System.out.println("Hello World!"); + SingleLinkedList list = new SingleLinkedList(); + System.out.println("Step 0: " + list); + list.addLast(55); + list.addLast(76); + list.addLast(35); + list.addFirst(22); + System.out.println("Step 1: " + list); + System.out.println("[Remove]: " + list.removeLast()); + System.out.println("Step 2: " + list); + list.addFirst(78); + list.addLast(88); + System.out.println("Step 3: " + list); + System.out.println("[Remove]: " + list.removeFirst()); + System.out.println("Step 4: " + list); + System.out.println("First: " + list.getFirst()); + System.out.println("Last: " + list.getLast()); - SingleLinkedList myList = new SingleLinkedList(); } } diff --git a/sll/src/main/java/com/tabrizu/ds/SingleLinkedList.java b/sll/src/main/java/com/tabrizu/ds/SingleLinkedList.java index 9c8ebd3..3158644 100644 --- a/sll/src/main/java/com/tabrizu/ds/SingleLinkedList.java +++ b/sll/src/main/java/com/tabrizu/ds/SingleLinkedList.java @@ -1,5 +1,4 @@ package com.tabrizu.ds; - public class SingleLinkedList implements ISingleLinkedList { private class Node { @@ -46,17 +45,21 @@ public class SingleLinkedList implements ISingleLinkedList { m_tail = m_head; } m_size += 1; + System.out.println("First Node added with value: " + value); + } @Override public void addLast(T value) { if (m_size == 0) { addFirst(value); + return; } Node newNode = new Node(value, null); m_tail.setNext(newNode); m_tail = newNode; m_size++; + System.out.println("Last Node added with value: " + value); } @@ -77,30 +80,50 @@ public class SingleLinkedList implements ISingleLinkedList { if (m_size == 0) { return null; } + if (m_size == 1) { + removeFirst(); + } T lastTail = m_tail.getValue(); Node currentNode = m_head; - while (currentNode.getNext() != null){ - + while (currentNode.getNext().getNext() != null){ currentNode = currentNode.getNext(); - } + m_tail = currentNode; + m_tail.setNext(null); + m_size--; + return lastTail; } @Override public T getFirst() { - // TODO Auto-generated method stub - return null; + if (m_size == 0){ + return null; + } + return m_head.getValue(); } @Override public T getLast() { - // TODO Auto-generated method stub - return null; + if (m_size == 0) { + return null; + } + return m_tail.getValue(); } @Override public String toString() { - + if (m_size == 0){ + return "[NULL]"; + } + Node currentNode = m_head; + StringBuilder output = new StringBuilder(); + while (currentNode != null){ + output.append(currentNode.getValue()); + if (currentNode.getNext() != null) + output.append(" => "); + currentNode = currentNode.getNext(); + } + return output.toString(); } } diff --git a/sll/target/classes/com/tabrizu/ds/App.class b/sll/target/classes/com/tabrizu/ds/App.class index ff261abb50d2cfd9339403d08fa54d1a530096b2..f74c1c6ab0a67a1cc9989349c0886fe2a699c5c9 100644 GIT binary patch literal 1659 zcmah}%Tg0T6g^FV8Nw(bkbw9gh>t*o@Di2agNFz@f*K7fq7I~qgOf~ZGNB5W{)St( zE_4wrsbcBE&+s>_vb>#6Ac3e!Rj2#jb57q^`p55YdjQ5@cu@zBf_e=NXk_qh8e2xx zGBT;?(%L3pcNrQd&5Y^ZVDN>E7{|P53LIP8rsm#&{l)Rpk#%Hl_A-%)GY=`qGl!)>q{sI zGIX!o>8NY0Ip({3G?|OW$!Brh%)I4E-ORaO1Vo}I7&;DeloHc<(@Jv3i%xh{oMKSp zF3*OBCPKn=MngA3R0kuQ<(VYIK&>E-#8ncF35l~pqW2I});HGoPv&_I7jTgxa%~wa zLwoorg>LCXzk-N{OBi5iJxFmOD^$?L$v%t-ty|^Os8pKPFe8+jrBdns+hx?4;M}1+iVjIx&~R5!)D(A1c%9lR zf{=hk4NC%`5I|TJJY?`6nyaa7mZ5&ePI8788ZW+>Pp@(3v9V^6#jo4zhLtcJQ=Ci2 zdiRZ)qsHk+rDCL&HcT4rV0h)oB+zV=-*8gIZmZ!Yr$wX9&~sS&@buF?!RpYqv*qx{ z|3{vz2&_CTH%QSNxAV?ApEE_~Divl>j2(vYfF2d`sRI+w3ayXm6s2EAzYYC6V4sWb zIIY4h*2lDJ5`ZU2(5VT_cuE!`vpsl(C>#3%#eb}TmR$s%?Vv-a^Da7R+vPu5!0AW< zJq4U2K*V?DE5Zc~MtpjC(_7vIi<^-O^5rUWh2x5JT-z6}@LjJWMSP1=HsX6KFRFmv ztb$fJO8Qf^^k@G@nv;(CTBLi@cYog}YVCoj^$x6de6g@9PGZ-~VwRLRMnmTQ=s6U`0xadOYLb{S@gG7?1q*16Fzahl05I4H8 zpx_7S%71Yuh&QS4!9904_nh~Bv~RKX@%#D?U=KSII0o|~3Z29~kNw+gr$2J`heHWM zT5TE(!eP|+RPazVh$v-8yk{veP?lga=vVHI>jduL(&>&zi5F^Ez+&37+EoVa*b9Ql zI*sC>-%zoPRS7E$tWei)?O*UmL=jUW#U|?bpVh{$?A^@wb2J8R; delta 33 lcmdnZyqkH#v&n*tDifb*Pc~&N=NDpNU|?bpX5a+VA^@yu2Jrv@ diff --git a/sll/target/classes/com/tabrizu/ds/SingleLinkedList$Node.class b/sll/target/classes/com/tabrizu/ds/SingleLinkedList$Node.class index 6940ec40e90a63aa8fe36021879e0bd40ec964ef..c0f88f66161d494778c79363cda00f33b08aeaf9 100644 GIT binary patch literal 1419 zcmb7DU2hUW6g|Vo^0lQD5&UeaV%>!THSvw6iD_bDLhylxhsLB?V1rv>F}q8nKKp|- zk(l`45Aa7B&+I}$YO)amGjs2md(S=h&adA;egb%oqZA^DCJ<8*haylJOeamx=sVV@ zS##(%yOuo~n{CT}XAawz>s30_p(&tvZ!NcSB(UEOxzI`@iBtk<6&a`kxl7~9XpRkg z)O_8)GzT7o9b2~Lod`rVy(jr(Rcs?CkeFOt8RHrA<=dOrS`wI7aSH`Tm|WQA2ZlNb zqvP{$38cE#$Tqy0!{E`gGg@k4SC0uhX~_DCexrrKTQ@0(T?xqPJ%QM%FY`8qH#@UQ z-*nE5{@52{IxxmP!?EOfVT{Rc2*ej+#R4sg?Z2QO-!I|MG*%MEWvyCCC^<5{UeJqz zrr#`$*)`qQF+pUuzavpSoMWq6pJV4M?NQw0f8NLN5%QZwnvpZOPkWhu z-o*p{{Doqu;*N5MT*pMO}VshEmHfE qA3La9xmHY}0d2u)lQhh}IC-EWfuvYH)R9JpVVi8@ zo!Ml-{hmE=r7hE;?e=Zo5&I>mi6Jp0mey$tM@sE~sGmRH(znJu>@Qp{8s_F8NXamz zyD4IJq`d|a?`Uu{p1Lv{x^uy85;NAezaF$=xhqM80h#V}<`4O6M~rcI{jF$;+s>fB z@jULIyLJ%pAcYn~C8ld~R$Nt7$u^ZI=d$ zDg6WCc_ebUA+onFQuwdP3mB1zDMjAVUUZTalUbQXMxrH}dRZzhx=ThgNK$uV{?({d Wfn*6$P$x`514r}}9EK(=D1QLUb}JRKH-=&X~D`xn}IYrlQZg@j;@t82l1oU_l_-(#PB^Xor9{{r9yRw8IZ zz(CMMGg=fn9$2eZGH(?Yl2_&**jZPhWyC2s?x;c_J}?_b2w?*e6Rj{6db7plq-)KW zoF|oJuAH293JZBV;}n+cT*fKO>gBtOwv|)p&oqebn=0n)lq6_3u}ya8TGw*&GSq3J z3){V+vh&1NP-z1@6#Cw0(+Hy2DFk;Z+=@5Ck;>F-kZQC+4ci2QfKA>3E%8Ff}_DAA1obY=ot8 z%EZU`gb68zCrw@OI%)<-F>E4*5pGh=R>_ffe=z7SI%S0ejZ&l(x;L+Xyt2MW!-nGF;|@XHG1$J+3eDa* z5m?oO<~zdENk$57)2@|WnzUAYuq|;856sdgR+!k&r-J=Zh|}gg2PV7@*Bl@4)uyA)4QP1zyX$F6BMQp;GN$DK40aRr3u&g z&n~{{oh_VmVUF=*!|UgKyXUP3qKTJK3H1VoT-p+W7wCA-`2ePQ?dA%g2SN6xFk)zD z=IuC$8IDR0uE%xE@_u8}$QOK5n8TNTwzIrTbaUb-bo{^vy}f_|J6?6W<}KUFh~AFv zhM)!fbJA$y{e0pTqH~Es?rOY5w~*le-=Q@jBSL46@4IN8))~Le?;yL+TQ&QwJ$?>+KHGG;F`Y$f0|AR|E?E+50V3RhP zunoiHlp?1Q9L8xf8^r|9c)Vg7#0Ial&ubTs!Q$#Bk6|@RGn6P{sH3Fpe6DRZT-hf% zA(nm1Bw|@yb8S}7#G*BfWjwFeFfQ(ScI9Z-;4{Y7+H#&$E|AnE+B1QD?7;oFTw_bz zhu?{vn6I-%<^;5!tFa~QL(P&$ZUgFHgeta7)k5tEeveRM4VP|+DIRX(pQJnE{Cka7 zd76Cs=1=VvW0V;8HbTd#DVW*dVGXnLI!U9Ohp2}-A0p5rJUAz*?l5VbqsAF3DCb*6JXZ zRlRBVgvydij#Tb@Fm+$(^kG)}f{X|xzf5YiUwn5?k-I+U5_9I6v+#d&^4AjCNooGZ z!W6&9G|!f<&%D~q`2AvX@HGw&@o0{*XWZbOZbyc?GCXEpc4Z=T z`LxP@{E$`o2z&7ueRx8+v literal 2302 zcmb7EU31%15IxtQiQ<0b8w#{a2|;!~+!kmdPE*>@Hlc1h#U@NH!8~wftxz>++ zmf2L8tM*;)zdO6>HLZ%maLwLz&7k933iE@UR_gW2>Qd~NQMf%k*v8$Hq*sXSWq*2H_>YsiXeC?!S&PP@#}4BV;0StUyB5tay;WQb8o+}Id+wZP|`vGe3g3L|`c~U>4y>jO-@fgbf$h2azVERaTg$pOTxTchEi2gbntH3#4s_q* zFuA(PMZ4n!y7!YFumJ+kKz^Gs%& z!_N0@p#{GsqFj0$DAR)kVU%#1xllxe`Ls z36sHNNU|!TM93$}Y@QmYLe|||0yDa`@aC4(W06)?o*dTG)5#&Ry`4Qp5an8l<65h6X8Oo znpA533Genwb%U+8#)!8uiglKK19Q03gV2Z(j$#^Lgi>`8%9$XH&IF;z!X}o!Tuwk; z4Jl9+B_Mj+<$jnj>b_K*u-koNiQ1*|7BRm&X3Ukhi21`YV_t=Dm6^OHa`3CYz_snM m>xWqTw~xEo6H`lY7mILDGm`Yv?YQ{sEEJ