From b6bf8f0301f93a71cf8754725f41ba2852aab836 Mon Sep 17 00:00:00 2001 From: tyg04308 Date: Fri, 22 Jun 2018 03:18:33 +0900 Subject: [PATCH 1/4] Implement IntSetBST Implement IntSetBST --- src/devSet/IntSetBST.java | 40 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/src/devSet/IntSetBST.java b/src/devSet/IntSetBST.java index 8b13789..7dba10b 100644 --- a/src/devSet/IntSetBST.java +++ b/src/devSet/IntSetBST.java @@ -1 +1,41 @@ +package devSet; +public class IntSetBST implements IntSet{ + + BinarySearchTree bst; + private int maxval; + private int maxelems; + + @Override + public void intSetImp(int maxelems, int maxval) { + // TODO Auto-generated method stub + bst = new BinarySearchTree(); + this.maxval = maxval; + this.maxelems = maxelems; + } + + @Override + public void insert(int element) { + // TODO Auto-generated method stub + if(bst.getSize() > maxelems) { + return ; + } + else if(element > maxval) { + return ; + } + bst.insertBST(element); + } + + @Override + public int size() { + // TODO Auto-generated method stub + return bst.getSize(); + } + + @Override + public int[] report() { + // TODO Auto-generated method stub + return bst.inorder(); + } + +} From 348b386fc73888baa63e96545aaa11c0c0dc1654 Mon Sep 17 00:00:00 2001 From: tyg04308 Date: Fri, 22 Jun 2018 03:19:30 +0900 Subject: [PATCH 2/4] Add extra class files Extra files for Binary Search Tree --- src/devSet/BinarySearchTree.java | 67 ++++++++++++++++++++++++++++++++ src/devSet/TreeNode.java | 22 +++++++++++ 2 files changed, 89 insertions(+) create mode 100644 src/devSet/BinarySearchTree.java create mode 100644 src/devSet/TreeNode.java diff --git a/src/devSet/BinarySearchTree.java b/src/devSet/BinarySearchTree.java new file mode 100644 index 0000000..3a19ac3 --- /dev/null +++ b/src/devSet/BinarySearchTree.java @@ -0,0 +1,67 @@ +package devSet; + +import java.util.ArrayList; + +public class BinarySearchTree { + private TreeNode root = new TreeNode(); + private int size = 0; + + public TreeNode insertKey(TreeNode root, int x) { + TreeNode p = root; + TreeNode newNode = new TreeNode(x); + this.size++; + + if(p==null){ + this.size--; + return newNode; + } + else if(p.data>newNode.data){ + p.left = insertKey(p.left, x); + return p; + } + else if(p.datap.data) p = p.right; + else return p; + } + return p; + } + + public void inorder(TreeNode root, ArrayList arr){ + if(this.root!=null){ + inorder(root.left, arr); + arr.add(root.data); + inorder(root.right, arr); + } + } + + public int[] inorder() { + int[] result = new int[this.size]; + ArrayList list = new ArrayList(); + this.inorder(this.root, list); + + for(int i=0; i Date: Fri, 22 Jun 2018 03:44:54 +0900 Subject: [PATCH 3/4] Upload Test class --- src/Test/IntSetBSTTest.java | 56 +++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 src/Test/IntSetBSTTest.java diff --git a/src/Test/IntSetBSTTest.java b/src/Test/IntSetBSTTest.java new file mode 100644 index 0000000..7c698eb --- /dev/null +++ b/src/Test/IntSetBSTTest.java @@ -0,0 +1,56 @@ +package devSet; + +import static org.junit.jupiter.api.Assertions.*; + +import java.util.Random; + +import org.junit.jupiter.api.Test; + +class IntSetBSTTest { + + IntSetBST bst = new IntSetBST(); + private static int MAX_VAL = 1000000; + private static int MAX_ELE = MAX_VAL/100; + private static Random num = new Random(); + + @Test + void testIntSetImp() { + bst.intSetImp(MAX_ELE, MAX_VAL); + assertEquals(MAX_VAL, bst.maxval); + assertEquals(MAX_ELE, bst.maxelems); + } + + @Test + void testInsert() { + + bst.intSetImp(MAX_ELE, MAX_VAL); + + int x =0; + for(int i=0;i Date: Fri, 22 Jun 2018 03:47:54 +0900 Subject: [PATCH 4/4] Test Picture --- BST.png | Bin 0 -> 4215 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 BST.png diff --git a/BST.png b/BST.png new file mode 100644 index 0000000000000000000000000000000000000000..0300642c28d342054920777b6dd045b2d4625718 GIT binary patch literal 4215 zcmZ{oXHZk$y2g=S0!j^`sq`)o2nwix)IShViuBHggd);W1e7A77io#1N&<-V-iv@D zp-YiaM5RfUCLnO)J!j5`d*^=GYwxvY*4i`g?|Ghg&qf)+wHfKT=*h^)7z$^_58gq z^*<_hCL_B7($!Ei39{Y9E~K&dviCRqN~XE`3;+B3xS1w%p_Yb3>MK)OmvqC1)Y8@z zXLfdPg@GFf0PDaNgXshzHzP_XuQE1vp>t7Dfnp6wYjUmQALX6Zoz-_mKd#x~4KK2k zp)Ebw_Ldc6yfhTwVt6$8dV8PPHm*6GKJ%+f3|1fP)?`wcJ%w2y$XO;NNIm;hBuCIU zuwzP4=$Z7-&`U=*dG6q8;Cuj~(!cJfsE_O5>E{XzqKtEufZ1Z)2mFb*WU&AYv0Buc1LKI@eT9PqA{5q#p8t$p3YaL@Ag z#_NdB#98v;#B*C>VpdEEb-0KK*DXs+B1DmMvsx-qBoisWH#8JF5ueI9D3jB6xPPFW z)BH7E0^zkz0(SFADeX?nq>Gr@2 zxyOigaF|tvhmX(6CO9krf#ee5sm+{R(BV#Hj+1Dxo=bi*AsZJlrRvqCn*?Mv>gm20 zdW^Y=FRas77>+g8fWqy%3%5&}Z!|Gd?tVjedAjPDUst(qF=THqx9B5V-xn?#E361I zKVC}?3G*YP*kt0sv{3iNAOXF5xehCWlxhVv&e$cF-UagvhO_zSPEi0B$@U-x8o3Bv!EDnsoTA@Tj?T+A5(>9-b8{Mj)$*Ee>d=dGM^2B8?)a0CttrLvXk_Cr zE{zJK{ccqQthcw8$q6Dd4c4_-nhqZ5yU&qhw~jg}!s6h5wcY%CAcLPx2w^!H5&H~H zC*b&=$dfOesAN3kU4Stqjep%T zx9%ny+Nj9*P^!2N(Gf(IZ{K-$Cu|{%!Bf<*P3hgJ#H(NjKaOS*9WKuoT~XOD75jBy zamH(!zA7p0wY_`{ym5ChC<*+Sn->}dDk}!M6IZ=XFFEr`%Ch8#1FL6owqS?Ru_bto zUc&c?o9wH@LIsfUJE@vf6eKQr$^P4(ZDCWmgzXM`&Ec)5yejzqNIvmc>b_=tEYN#^^$%*7gU-!44&T=*T7){4uJsoZEcGCYSNU9aN zln0zWiza^n;o^FstbF2!q z=uWO}Ft?}9kmWx8#~$kMDW5{drr#EclLhH|us%My;=z*i?e%+5(gHZ%;srQ5ezJaG zBAy3T>cMX}yCBc*^8n_PL8c&63dtAUu*v3v`KPkF(BvwH4@RUvCKFF>1l~g`GgU#R z4$XNHm-X~+y({SnEaz$)XmUmhgEuHZY}K2cchfI=lLF@UmXJH~IwXFF2d_@7FGg6t zct1DCh(ty?Cilw{Vn9qLQx1FOaOrf!vi5Mr&EKEzXE}#f`yX76KI!yb-#@-c(0_9H zJGQ9yE4i%y&jaDAD5ocmN$y%h4=pqwE-a1(O$lWV$g_S~u(PExbTquvO1Ye&aCx2y z8NBhl=#U^Gs>sN zf^GE8sN250T4wF3_oE~;W)>-_Ee{H& z@RC$Pc?!FuerZ}l5bpKPam(k1^-}7_kM1VtaV_od1uJv@(Gbh{Xd`}=!2~R&Yf88N zVvGD8bqencj)yqg^3>X+)1zkB*qGwiG?xEw2usT}#8}Y2{mPlOuA>gMnv}ldYb(hS zK3seTd_M9wWgt9L_FpAVU8ue@)BBBZ$tTkfrGTj#(W`k^sY&!}j(-8RcDd&47I!v=4M@n-Y5S@Rf> zTlZVaLm^cK3fh@u3yK|XbKb}<-F(V|Tb@ENi|b8o*28mBTNBFk6Y)`3hfDDQp=_qb zbf)i2881B??y=Ja+ITA~d)&Da{W5bE#vwsbL>8xS|3kjXQ-W2MQItm;YC>7Hc>aC~ zu1xO}u|2IKfZg%XdONe0SQ3L)s5zOtUTL}wYCrCM`4S#Rmy_m-Q@1)@+-y#W`p`M- z5SOBE0wo`Rf<=bF!Zx=4Pdqrx|R9JYyIiZ%T8(F zoS7r8p!xId>$OgJ{KU#PiHvm^C1%-CTE;@+;tGuD;fSh0eFb`iRT|rT`1v%is9e!C zsg}2J!2D_Zbn$|j1iBWqeQt60;Z@|mf&mUyb|#+Tv(q4y|$r5 zI7Aq@D|MIy6|0hbt+br^2BIO^gl80luzX=s*Pfx~=~Ne_Bl!7YaRkj>z0h&Q%4Fp2 z3G&{xw{G6}l+uw|4+wtqWqWMefhAMBCUs51v)eTPHAgEso31*P*A97n7YA$kR`Ocg^@;eSNqzhzVyw3BAM@vvl=k2~8iB9$DZy0f{7 zKR=jUJIlIq{=Qp6mGuokn5cq7(UYWu{YJ1FCj*Q*`H-LQd2cA0;clW44L;DnpO&Pu zkSn<3qW#gkWxcWR=?}3(c{g?+!M!U4%ItA!+^l-+qnJwuX4Ar9+rK*OHAsGyY9)X5 z01qH7@el)dZ*-|(nGO&^aOtQZF4}72)F0KXC5>?~6r`r0+`SHe8QPu%vI_`)m1Wg5 zr)LYa45BJ7S`Nm!Pa%e|Ahj!DW(jOty9~ipZUpq&l0Vv4$cov=@ z4^D{$9$4ZnV(meTi$WQDSV8%;F(tx-Ag9g`p3R*Ny~KyDe-zFB=9y>bC7Bu$aKRe5 z@lz@j$FY3(&hk*hvW6*cinDaNpJ2TZ0|tQm^qk>)m9pmF3fKgpTMd$cZ(M&;XcyO ze&4n^2gkc19^<1j&CTFgw5|^p(7LDk*qm@~+G zu^hIJ7P1P%&^>o7j{To#=kSwl5(AWr5b4#&^>Aaj%}z=Y=YI$YWuzO`0P5o|pfvIS zRsa85(G&Q$6@kO}DH!yx6@j|?nNzj)+qH7%m6zF)jFRn578lbodvSvD<1=-HUxC`h zGINFbVtcS%)5iyl?UBpvx0X9-S^v|u#57pY*}Y$Y)718V?tjp&)BAqyN|8A(00pep zUsY>8XF0x*)|IhgR%!L|y-s2cRMlJHOWT(N+DG_Rr8FiHEZAwnwHLp^MK6l#(QHY? z3~@PTgtpOaBh};4odH6*03Bh_-?K*7w@#{cLSRSU>Ds$Lv|hAx^NbAeDw+%Pidkka zdOv?KrYxCgTfVZz5xCAvh3xB2auxd9o-ja-?W|;K20zsJmcdwaiHG~DV4|kCoNYs( zX&zR-zUCW(`fwH@>>66^os$9&f)#!a`T;yfPU;J}VA+&7(pfBGrhQ}WSFlZ7Y^!Gb{Oa)Ww}o!z=`Aef0laEB`#=ko`r2U_;+=aeio4F MYQi