From 6d6b968fd644324d864feccf8f2a3d26b43ef119 Mon Sep 17 00:00:00 2001 From: Bill Jacobs Date: Sat, 13 May 2017 18:19:03 -0500 Subject: [PATCH] Simplified if statements This simplifies this: if (a) { c; } if (b) { c; } to this: if (a || b) { c; } --- RedBlackNode.jar | Bin 43642 -> 43628 bytes .../btrekkie/red_black_node/RedBlackNode.java | 23 +++++++----------- .../github/btrekkie/tree_list/TreeList.java | 2 +- 3 files changed, 10 insertions(+), 15 deletions(-) diff --git a/RedBlackNode.jar b/RedBlackNode.jar index fac54d1902e8b66053800b546dac65edc9d1f834..234edde7aba36f98c25c31731a07f01ef59654cd 100644 GIT binary patch delta 10066 zcmY+KWmFx@x~_3|cejbVOK^9Wkl?Pt19TSdHgOH^ZoxvBKyY^r?k>T}$=b=e_v{`$ zx}WiBRgLQU)9>Rf%*iYahK4dM93B)B5)#y#q-v!^3{&WgdM9XT=zvBS=xP|~05Cb+ zHFRhrHhdo(++uLGQsWZxC+I))7F7}E4^^P!!(#vIh5A320ytlT5Il|!YQ(~R`kR7@ z>kI!UC5EW(@BRl`oSou7l5k~8$5knK`&EKRMZF(dtu%a_tw|(!Ln_3gzLPD_J9uD)L-GhKJNL7 zbKT8X@6MKMpD!J)2cETtQ^IPD4~uS~S$U434)5{x?YEABvH)C{$Q*Yi>8dJvJ&BKM z7ENc#OR8hH^$noX2X0{r+kc2(S_aPbL3`E z?4o9kddIN~4*<&GEaAS)Ewo1XG2DZZsIwL+@`oP3B@l)nnugtEhLspNtpo|x zr`pL?81jvIPJJhyN=3M>VtK(Dr03tdCN)Y)@9+=|Fat&@4C}igM3PAwTQ@Q*du)?e zMYl;%+=bQE^{HQuwAO@amlxjzxd}AQ_Z57=KMxL8kWTms*k>cDMzJ^Tr?HKV$rN__ z3__noRr(;g6%M8$U~B9YAIY(@+1g%d-_}tfn0@k#%Pnaq$B}72A}~-0vGA;)pWh=0 zGIB6}TL7H6*u}|j*OM&UVutbDs27yC*K_f6EE~*m*Q&BTm(3iRqi&;*shVQ31ec7( zDz{k=dOJEErG}ps{v$yby)M8tCdB;S|2hsX( z52zklY64X2`@v3=?U^Nqv1mlEB}_-AWc{3VPe30^;o82{fk^9S(-A|nbl+t?-R@q? z{k?&xTBF*O2vxKVdPcsb4!H~hcUQWC@X4g<DS*s_&%TwT>n3EN>ey%&Z%mX0O#7Xw|P2?WN zGR;*n+xcqB*J+e#3EJ7m5%$@&rU(=8PSCGTnsCui8DKTK`a@k$ZuC5dn4QZBM1b9* zr2eU)Mkh1r>>yw7vQ}u$G?T=dnalM>0?wO_fSJPB*se{M-1ihiAQ%pCQ@V7Z+4`b^#ps*W8GHMP`R9WIgOvJ$`p3S{tL)9&+Mb|RfWGCk zuco8->FpLK+DpaOR-=PM%a4As6hq=tI^8FD5uNG8Ayw( z8BVUG%oV?iC9?}3pN@^pn`mc{$k1%?N*$#${ppQ^bmIhx3v*6>(2RI#^^#*+*SO9h7il{F!4$CZ(Weu{5wU&exsJC-tJ_NnyDn=ync zbSGAVzfgE<_{{W&l@87o``DdQSPSE5e{#`giBO%pn)pE&KHFB)rnp3V1+dLNEWZd` z{YoT9VY+sSo{9cQjPfWTXT1G#=e(ElsEvuU011<2CK^m%nVcqBkYQYm@Hk}V9;>iP zBj|P}wm6AU=UdtRmObly`@~TLYuMGgX!zKR_f-gcR6JmnRx+8m^vCP>I`RVjCXw_4_2t(kxC^CDl8`>0`}$*tQ$Wst zj@~3DM>2r4k8tqk*2gf-<|auzHT!CgSb?-7D`uHyf-()3HY-3?xKMAUmXXu=q$eJY z{;4;TQewji(icVxv7bw z|JYXBN7~JTtQ&)fA{=#(uq}z>5)*P8&wcB?VZ_X+tNLM<;Ya{aXH|mPo9TinJqPf7m0p2{ zId8|MNAohY6u3b$8-xRm>N5c~Hf*;};8e%^qKBN#dxMJmP@o?vAXRR0| zBkS+WW|SY3RmgFVid-aklLio23B^r%ZWtHHU$WvVZPi!s?5S(C?sH?PqY3F`XY&L{GB z{~Q!LNcKvNZ!ov>w0A(VCiT&A{nCx~e@;mUmB3;nPj`J*R?TNvpoDdFFLZP_sXCUc zWC$hr5li50i|%1STAp`UD`MQJtx&(Fz!g4A6@}tXwnmJcL)^36g>B zz(!w`iRNQbA^!(mGJTQX7(XYXmk%wehE^f_iZBpWTT9#DE)*#|KbQ+?Hmh6(V|67;qIgUBVB2D@xO3a|#k$!5jyJWv*N!2ZQ*8!e(>cn8PQAqj3j`Ed80( zjTDIbJH(=~lb)v@$2Rj8e~!^y>4guGlMlRWTIN4t%)LNd?I%FOlC-zQPg3UcDKJDX zrZS;c>7%7!)#rqEir~0v1#JNm{IjV-FnJep6yo5$%sr3)2_EcZ%+y!|BvB1^4fs|o^; zKw37Tx6^FKNGxVf-#2+0nFY-H2-xE4l6qm8Fd27?PBeXoV3{JB+9t)wG%^z<+3L-j85#SXM+Ela`qRI|iXGoc}>>{&slnLDQ5t6vhtU!@lG z6~k(0GS@%zb;`2%Wm(>PCvAEqZFbQ0-YJBggV7|YhyxY4pCc^qxrQ!yk~V?;U&zF9 zy*{+kuTY6p%7e*73{?&E-c3m+>w}#s7e}694l9>hpz2Pou%h-hDRvz6ScAx^3WJ*H z@FSy3D24-J?F5gpcabLvbV{`4JE(0spdFe5WxTe6>E?q{`4GCpk|To;jtcXc$SaAp zLlrHob9z~h$}wm83iCQ&A~yk3p|ix(K^^?&c8DrIb;eF8LTjOX`MO1=&iQ4CZceaL zbLeF%O0V;~TNUy~rN{+c*H+px2c=fez-vOAfz~8^=&!WUf$ANvv_kQDlc*BfE44fC zg>Ch{%s8z~rKck6@vu}1&>Rr91^+?LmKir=|FCJf_gxAF-6(@H+5igJucKnOCa8ID zXV5e420PM6&Wh^Y=(sxK_a62*QXb@a&oa`_!y2-0NMUOE;FELPvr@&;(kSKM_qdJ9 z5B09$pJZtdjXnL*RYxS$IwWNq`YJ+}VuO!N{rmK+qZsoMSyEHfJ>TTAnQz0n4VQQ) zEScSI=xdVc@tR7Ugb`AJn`gn-XeIUrSc-x~MYpMAwemMBW_B~WM0~s`O88286~AvecdZc&uZBMr~@K5>XSD%OV~+I;x{#s9;E@IbRyJN_{bnd zzsIg|ag_EZd|@ZXBPw5h!-hV8O(z2c(%zs`vqJmjy3r|yHmyviYN~=JHk_nkw{i#H z5D;yZ>hYtNmb?YI+~?2z<^y5UG3{_1R$A zV(x@EL$Xe+yRvXcDFoA3;}}R;R;H?&jZ$VYP?wu+np_eEqqYw7jVc+n$=a|=m)rd# z#-)Ikl_!@nL;mI;+B-3kB85NfyY#8|?zZ=B_X(x($fLw(z=&p6rT4BI8s8Q1faP z{*1(J64W_sp=4eH|Ljtry}zS@yvDeS8`ax=0}v~;kEM*7FqTp)i*$`sj!3paL_s=p`&a1kb-H&~1gj@b_lqKM z7pDh9>$2h>F+)!RLY5E(BLWmsFKE$hD7U>&a2ta1%tW8apj;~lzBm|8}ySvYNLxA{!<*lx_S2{uQc9vrsVrnBTw3iBu5fSEijr2zu>kniq{3^2LA#&rQUG?r)GeeS6Tcf!rE zB*=mvTtj^6hwqut_PcwT#7S^{@fogZxl-bLJj5}09(-gT;70f7Y z1~#``rU0&oZ6;HrwQC#Gv>sRMYTU zUoksnG>PlB`xIcpCP;u&KqA!8pJHSS)lfZ<*-jOe^qa9^`hcRbk%Dn*9qoNa5t~hY z;r-HyZD8DdL~)2rP;50eGe56$X$&`^Hi@h!;nAp9gLbBxPzva+dcDmXkz#o!xpyVX z>RRgH&`w!(8+*2gASq<+$GBJaX7`6k5Vt#Mrt}9?Jlx={)nEEgOH{uCrmtiY0 z$`|TexA6L^G04g*@k9^pTg|L7dPBNU%?fMDk(l9cI{<{+iMkbC0uQ&l$w)nF4;=w3 zb!H{u&ne+}jYXAeTB_$Y!sRJxM)SD&$~0c$<_Ugv%d&wWYEL2RTjm|$3jd(DmZ8X0 zTA_=8_TIB>Yr%rG8+z_JKE2OnmWlIn8;=w|AVT{?gWg_pMYa}SHM8$oDw*LyOjCAZ zD$lgL9K-k)5^9E>Qm4`=-X80KRa_tY0!~M|UU5*te5bB!N)6`zke|NA*D8(xEPaiN zE37uMVGUy9;7-dfk)2`Sjy1UzLc3x{$#EbP=Irbw(M0z`UB3N2VI|NbOMX{19=$Dz zrdo!??Z!soD}{3)rThI0(*~)=FeO#-kBGv1hS>{5u2_kX?FZ}GOLsfOF|Y7im)fHA6bJ1p=v#!2CJK1IzIi*(xpNnJP>rext~*>yR5Zk-r-%DR+H(gF zcOPAMudJ}o0Uib3Q8RVNKtJ=LZP#vdz9Pt72{ikw7KxBJOx4hH8;v9-&W1ZER(|nK zPi=Zb&~`0SPFK$Gc0|8~Yym_9xZ5(NXPPQiAk-DW63B8VcHPf<{|18D{}(Cz4E9j-;0m|OAnFPP$@-+Sb*7Fo6AYK~S1MI

z$XWs78NSec^g$$g0U>{+i6b_(DCnwAcV`>E;v=AX)9*EfNf`m-&yHXg&ID;S=M2Q@ zU!)J?q=t;L(XcXwHLz-a_lpiT_(w1uKhm9FhYW&&9qw>oTBCwWdX{~HK9Dy?43#qP za4wvH%}CN7Y)Ei6^C|Xos}l*s#*gH_9Hrt&uN+czA7oOGa%_$b=(4={rbK2YiDP;r z!X==1W=P+$s9yZ&t#ev3^C%ybS~i_+E^9dBt_}Ksj)hSdp=;yu=Tx5V-O*YlrTmI1 zTApnII7f?Z#wSY5#z7*^dMp{l}MXDi^}el1|+GuQex*)v;M*PW~DzrRt}x zShQox%s>T(c+pFZFFmm#j{p7h+DM)JKPg+gyejp{q0}VF5Zv8+x8DkBoR&aV?J4Z8t0qk3p=wsaKMyL~FXfY+*wUdp35$ zG{N>bf>Fy!;ZR2z8qlK!4-SJd=6$cpkur~rFHM>1RDCV1tUIY|y$DU60RFJfWhWn& zfQpi`>6N&-A${`0and+19@Apr5|rb_YzNZqQ)T*$i3dZSmpRy)vIYH)>GP-_mD^7u z6go_PT}{3;jYfT9?pksgpHm|q-A^S*5wYn?hDua!BvIZ{fgkN;hZByA+fIwyZl_mM zC|15LE3+uESC>6aC*^3Pc@!ui|ENvd(eBBSoe5H#{ z_>>t&JSll47c0uwD{9f4DYzzzLQCR?!}U680nQO95DcR>2iz%)ifvMWsZ55;>YXw& zv*~U1s`Y5?cT1*M(B}^;Hj*S~@0L_w}4zY~I8UX>`<-F-`jsXExR7 zpzJi@526^-?BtR(SPm)!`U9UYUMf1MmXh7WNOaLM+wt5@Z3O|eeT)J?7i???p1jD8`N(2 z6uA1^c5djogbQ1`Zsh9(3)^qqV8yX32Lsj=YK|G6nVlKZJW;QKXk){YFR`J0_Ve;p zX0ZL_j&-&+#an9b#(;Tm|69i^^JOM@vu#ZX3%o0%}1(Hx)6U>;CEux_{ETnkdTp zrR;ZqH$CF5l=ps`L)7CO6ioBZIzlP~gfPUa$=cYju_R5#{6VJp1XN*JlTIbQMYLqB zlIFVwm%*_&`J%I=&zkzuuO;-xga$E+WtZwyL625C<0^zUf0|`E(Gr)zbPn4YBfpPs z+M>_0Gb{~2He-zFJ>fKK5tIqXaF!b3?5vRvN++sVOH50^?IG2kw&51darrh2_c)xD{CVD-4y!5DQdZNTdV z?_O96i5g<4r~WS{6Q)0~ZM|vhv6kWX1~gG>A;H-gmVOsnb-2F5T;6fj@03*SwJ;iZ zfQ=`UYHsqy#9D(H3AObZW-ebH6M|UX>XQTBk_J43_bA$gSIj8im^3PJphu}>>B9_ zmmwx&f7JX>6iroelFb>A)X0sZSqh@|kkI+=_QfPb)19m0 zK-`eM2hEpZ^NMve(FT`&f<`4bn*ItiWa!$pO_Wl97`0A{y_fHbW|fYE!NfGk%NI01 z6;RlT7C$s{ncNA(G0bwAWb%*x4xi6k)9BV6&-)I#ebBE6%$?YKopm6DT<6trJxI-$ z<$7qYD%_;kZ&*ZYoqtF8;cZRqrPQ;fg+Eka9ao^B_#{!9Ak6vl?}Ov>y%)p=XJT(8 z)`U@hr1{dZtlUKqEf&seWRhiUUyW$!t%APyJ47jzlD0qw5uG`;n;Wh)#)Mj&B#!KO z!Q~q_2F^u)hpb99s#bt{X1p9C>{HnFJTO|tA+Y(*IH`2cj`<Np@Nnt(fDxhy; z?Q1+y_LUgB@3KE-{RRG4FW!C9Y9Yg)z8eB&w-ujlD|2(x5AoMSfc+^3BJr;?{>hHt zF?o~)HcP|nz!vz^I>!9L_Pi$X2UqreotMgAUnf!d^2>>b<^};#&z3nJ7u_Qr-y){z ze0=Vv8PoORHK*3BRuX1=26XnNzE0}aHbyHYzc>BiJ-gPHgYuKo;wZyu zoNvVA{<%V)4rAmp5|6#KJjvSS&!*1nH@p&JO_{*GdPk-FjB}REu^srpoSRs?sr!Ji zp6ap{@IWA*=CTbqJgDKc(cOl4zRKlcmE}B!Js7?LK3=Dco5PO>y_bw#t#k`|>qjb< zQOxx$&TU}Sx;^4Trd(B4EHax+&rge*lNkE*(n=j}4EiI%m7mSiTRlX&;{{BUm-gPU zBNEP>i#v1|%M1i+p*b^U6s2#as_VB}BCKdr{QC2)N_i$Fy$>~i0Fju2_Mj1Fw zckp0g%#Qj>2A?!mwJ@s6s$*f&J2@y$Won-IhWw<6F2Z*&mTu?X@U$v1p#A|k>kaOAcAxe>GB{!$m$up`IeoMy ztrd%gX-cX-AV(g;d3l(LMLs07JRB+zME-uWHO%3R@aa)%(i&5bWzJrm5Hf zi4tIm5JJy&s}zrK-i^QPwOt%Nm}!tIEl<)lqit^q607=28Kag8s{s-U+t^a^?q3Iu(EVTIpB1I;DR8Cn% zX6XOQo&Mjtfsu>#sQz6qSm?MSM;It5ICv;1@&BW_f`anV08e2NfD^Rwz@r)j;O=6y zKSd{sNnkXz|N2EDZko=)m+vIR9yG84IzD zg@uArMSy}5_^;-hrvC}1vcmv#yu$}Omi}$xUrGWqWBz}9sNjK8oIe9w`|aDX{p(`_ zvlOBIr^%gwR_xaA8T$R6A?JTJA#w!wlre#$%Lpj{U5Ybmn*Dk>D5!O0C@8W23N!$J zD^vN?1go3`#>3-x9v67R11G8c@3?^9X7YgllyeC{01uV_=`9wV&0c^91r^Bw1;zJY gB}pQG2UGptCv?BJh;RiNG$mNSf*j!?_ur`h0ccqFF8}}l delta 10097 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 diff --git a/src/com/github/btrekkie/red_black_node/RedBlackNode.java b/src/com/github/btrekkie/red_black_node/RedBlackNode.java index 73a8dc535..671c35b6b 100644 --- a/src/com/github/btrekkie/red_black_node/RedBlackNode.java +++ b/src/com/github/btrekkie/red_black_node/RedBlackNode.java @@ -669,16 +669,17 @@ public abstract class RedBlackNode> implements Compara } /** - * Returns the root of a perfectly height-balanced subtree containing the next "size" nodes from "iterator", in - * iteration order. This method is responsible for setting the "left", "right", "parent", and isRed fields of the - * nodes, and calling augment() as appropriate. It ignores the initial values of the "left", "right", "parent", and - * isRed fields. + * Returns the root of a perfectly height-balanced subtree containing the next "size" (non-leaf) nodes from + * "iterator", in iteration order. This method is responsible for setting the "left", "right", "parent", and isRed + * fields of the nodes, and calling augment() as appropriate. It ignores the initial values of the "left", "right", + * "parent", and isRed fields. * @param iterator The nodes. * @param size The number of nodes. * @param height The "height" of the subtree's root node above the deepest leaf in the tree that contains it. Since * insertion fixup is slow if there are too many red nodes and deleteion fixup is slow if there are too few red * nodes, we compromise and have red nodes at every fourth level. We color a node red iff its "height" is equal * to 1 mod 4. + * @param leaf The leaf node. * @return The root of the subtree. */ private static > N createTree( @@ -740,8 +741,8 @@ public abstract class RedBlackNode> implements Compara // If the black height of "first", where first = this, is less than or equal to that of "last", starting at the // root of "last", we keep going left until we reach a black node whose black height is equal to that of // "first". Then, we make "pivot" the parent of that node and of "first", coloring it red, and perform - // insertion fixup on the pivot. If the black height of "first" is greater than that of "last", we do the mirror - // image of the above. + // insertion fixup on the pivot. If the black height of "first" is greater than that of "last", we do the + // mirror image of the above. if (parent != null) { throw new IllegalArgumentException("This is not the root of a tree"); @@ -831,10 +832,7 @@ public abstract class RedBlackNode> implements Compara * inserting all of the nodes in "last". */ public N concatenate(N last) { - if (parent != null) { - throw new IllegalArgumentException("The node is not the root of a tree"); - } - if (last.parent != null) { + if (parent != null || last.parent != null) { throw new IllegalArgumentException("The node is not the root of a tree"); } if (isLeaf()) { @@ -1221,10 +1219,7 @@ public abstract class RedBlackNode> implements Compara } else { int childBlackHeight; if (isRed) { - if (!left.isLeaf() && left.isRed) { - throw new RuntimeException("A red node has a red child"); - } - if (!right.isLeaf() && right.isRed) { + if ((!left.isLeaf() && left.isRed) || (!right.isLeaf() && right.isRed)) { throw new RuntimeException("A red node has a red child"); } childBlackHeight = blackHeight; diff --git a/src/com/github/btrekkie/tree_list/TreeList.java b/src/com/github/btrekkie/tree_list/TreeList.java index ba96c716f..41e411d91 100644 --- a/src/com/github/btrekkie/tree_list/TreeList.java +++ b/src/com/github/btrekkie/tree_list/TreeList.java @@ -398,7 +398,7 @@ public class TreeList extends AbstractList { } // Create the new node - TreeListNode newNode = new TreeListNode(value);; + TreeListNode newNode = new TreeListNode(value); newNode.left = leaf; newNode.right = leaf; newNode.isRed = true;