From 58d7dff2690e709853faa738d2e22738666f9630 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Juan=20Manuel=20Teher=C3=A1n=20Machado?= Date: Wed, 25 Oct 2023 13:58:28 +0000 Subject: [PATCH 01/24] Delete unused packages import --- demo/src/main/java/com/example/Menu.java | 1 - demo/target/classes/com/example/Menu.class | Bin 4833 -> 4833 bytes 2 files changed, 1 deletion(-) diff --git a/demo/src/main/java/com/example/Menu.java b/demo/src/main/java/com/example/Menu.java index 0a21285..1262eb9 100644 --- a/demo/src/main/java/com/example/Menu.java +++ b/demo/src/main/java/com/example/Menu.java @@ -1,6 +1,5 @@ package com.example; -import java.io.IOException; import java.util.Scanner; public class Menu { diff --git a/demo/target/classes/com/example/Menu.class b/demo/target/classes/com/example/Menu.class index f4e539eb9f01430cfe831e0dc27fab178ad2ffe5..d96ecaad99b8c23a31ff64e8980c6fb0bc131ab5 100644 GIT binary patch delta 514 zcmWmBOGuPq6vpxYOSZ6?YE(wXTZ!XTsI$;CvkOI-HKO3cvdl|bnT3|4<(QZg8G;1r zINsApk`a|gX`n^oGH4UHFj|F3wg_Ch5*I#gUcT>q=RD{4@@={{UCRMW!Xcut5RH|1 z4&&q~8Q91sCb(c(@!0k4f8Bwd1X4)EMG|h3$}BoA&r9 zRN_@$tE-pm^x+{uF(Z^PL22aRku~El*NU53Q6c6nL2oO%QbBh#SVbw-+@MBhEe}L) zrcTg$#ol9FmG?9d(iOrq@`XoylenlISu{UYe71n+#r=9C}PXZzAosF5`bIXTO{Sat_KFkaI}Rpq#^Uj>tJG z=a^LE+CHHzlXAXeifLvgo#O*b%vl%(KP<>n!q%Pi(Nvmb#pv-*iCd KU($o#*p_{v4ruKF delta 514 zcmWlWO-K|_6otQsx`-JE9q}(UHJt{f0?q$2)5tI}+zkGtrDdgQ>P)C*){v^k22Eb$gXv2uuTVz7}$ z1ervVh26hw`CJi$g;@Q?6U||gNWeiNC-lnY2*o5*MhX{6rAgWr(z(qsx^UtlgMNNh Date: Wed, 25 Oct 2023 14:22:59 +0000 Subject: [PATCH 02/24] Complete binary tree node --- demo/src/main/java/Tree/BinaryNode.java | 47 ++++++++++++++++++++++ demo/target/classes/Tree/BinaryNode.class | Bin 0 -> 1042 bytes 2 files changed, 47 insertions(+) create mode 100644 demo/src/main/java/Tree/BinaryNode.java create mode 100644 demo/target/classes/Tree/BinaryNode.class diff --git a/demo/src/main/java/Tree/BinaryNode.java b/demo/src/main/java/Tree/BinaryNode.java new file mode 100644 index 0000000..06aee02 --- /dev/null +++ b/demo/src/main/java/Tree/BinaryNode.java @@ -0,0 +1,47 @@ +package Tree; + + +public class BinaryNode { + //Implementación de un nodo para árbol binario + private Object data; + private BinaryNode left; + private BinaryNode right; + + //Constructors + public BinaryNode() { + this.data = null; + + } + + public BinaryNode(Object data) { + this.data = data; + this.left = null; + this.right = null; + } + + //Getters de la clase + public Object getData() { + return data; + } + + public BinaryNode getLeft() { + return left; + } + + public BinaryNode getRight() { + return right; + } + + //Setters de la clase + public void setData(Object data) { + this.data = data; + } + + public void setLeft(BinaryNode left) { + this.left = left; + } + + public void setright(BinaryNode right) { + this.right = right; + } +} diff --git a/demo/target/classes/Tree/BinaryNode.class b/demo/target/classes/Tree/BinaryNode.class new file mode 100644 index 0000000000000000000000000000000000000000..b2ba5c31c91f0977a6d8145de1084f1349c0fc26 GIT binary patch literal 1042 zcmZ{i&2G~`6otMZID9}Pdi4o0`1yvV-SVcvGDq`!TL+UC`B-cgatv~`H zvETuCD8#vAlLW_=CC_-~o^S3s6d@h*yUNSqkp^ z`E@+jZz8c(Uxt1tp<soeYhGH7mSG9W&qyCgvRL68(o>QI*Ou4zlG$Nbz!sSeGMl8f`1pq1 zN%a|{^K= literal 0 HcmV?d00001 From c27b7cf49853dd6a7895faf251f87f9f941a3b00 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Juan=20Manuel=20Teher=C3=A1n=20Machado?= Date: Wed, 25 Oct 2023 14:34:16 +0000 Subject: [PATCH 03/24] Start implementation of BinTree --- demo/src/main/java/Tree/BinaryTree.java | 57 ++++++++++++++++++++++ demo/target/classes/Tree/BinaryTree.class | Bin 0 -> 1344 bytes 2 files changed, 57 insertions(+) create mode 100644 demo/src/main/java/Tree/BinaryTree.java create mode 100644 demo/target/classes/Tree/BinaryTree.class diff --git a/demo/src/main/java/Tree/BinaryTree.java b/demo/src/main/java/Tree/BinaryTree.java new file mode 100644 index 0000000..6bfcb49 --- /dev/null +++ b/demo/src/main/java/Tree/BinaryTree.java @@ -0,0 +1,57 @@ +package Tree; + +public class BinaryTree { + //Atributos de la clase + private BinaryNode root; //Raíz del árbol + private int size; //Tamaño del árbol + + //Constructores + public BinaryTree() { + this.root = null; + this.size = 0; + } + + //Verificación de atributos + public boolean isEmpty() { + return size == 0; + } + + public boolean isRoot(BinaryNode node) { + return node == root; + } + + //Verificación de hijos + public boolean hasLeft(BinaryNode node) { + return node.getLeft() != null; + } + + public boolean hasRight(BinaryNode node) { + return node.getRight() != null; + } + + //Verifica si un nodo es interno + public boolean isInternal(BinaryNode node) { + return hasLeft(node) || hasRight(node); + } + + + //Getters de la clase + public int getSize() { + return size; + } + + public BinaryNode getRoot() { + return root; + } + + //Retorno de hijos de un nodo + public BinaryNode left(BinaryNode node) { + return node.getLeft(); + } + + public BinaryNode right(BinaryNode node) { + return node.getRight(); + } + + +} diff --git a/demo/target/classes/Tree/BinaryTree.class b/demo/target/classes/Tree/BinaryTree.class new file mode 100644 index 0000000000000000000000000000000000000000..d6a8c0629d84338df6066a744f55bdc565c1e20f GIT binary patch literal 1344 zcma))T~8BH5Qg7FcPVYRrId=`m(;~Gy(;~Z?|ctY6Jco?KjS2K6Ts=j)GcO7=Pk=Zm^;dE0uTn z@{Ary#E`a-Kr#X5vtVLec2gGOnBYy#^_-2v{kr3C+w~Snxmvqnw{~pbm2-G$1WmUy zB0#iIK-}%D?jHn4I_+zP^j2Uu-o3C7!q9QIv#HhROK0Sl>2G+HNler3)SS0L5|?o` zjw{2>kzy@e!#o{#oj@EFrc32BM1={0Hr?H(Cf%@bQ-UTKq%RecZfD&K9N)8BNj9Qv z;Svh6Td;5)g$3MSlYANmdFxhvhB{5$L=nKNr* zOA@#Adtj+3DkO`IFo6i=&sSG1FrZ?G!r1er?g1li9zAjdTagKL6ol4}YXSeWLG z)eA!&=Xg?>!TAumLMzBrDQc2N0 Date: Mon, 30 Oct 2023 04:03:35 +0000 Subject: [PATCH 04/24] Implement parent method, for get parent --- demo/src/main/java/Tree/BinaryTree.java | 28 ++++++++++- demo/src/main/java/com/example/Main.java | 16 ++---- .../classes/DoubleList/DoubleList.class | Bin 2587 -> 2607 bytes .../classes/DoubleList/DoubleNode.class | Bin 1065 -> 1065 bytes demo/target/classes/Queue/ArrayQueue.class | Bin 1048 -> 1044 bytes demo/target/classes/Queue/Queue.class | Bin 1046 -> 1042 bytes demo/target/classes/SimpleList/List.class | Bin 1791 -> 1799 bytes demo/target/classes/SimpleList/Node.class | Bin 844 -> 844 bytes demo/target/classes/Stack/Stack.class | Bin 905 -> 905 bytes demo/target/classes/Stack/StackArray.class | Bin 1202 -> 1202 bytes demo/target/classes/Tree/BinaryTree.class | Bin 1344 -> 1821 bytes .../classes/com/example/.idea/workspace.xml | 47 ++++++++++++++++++ .../classes/com/example/Credenciales.class | Bin 1681 -> 1681 bytes demo/target/classes/com/example/Fecha.class | Bin 1539 -> 1539 bytes demo/target/classes/com/example/Main.class | Bin 488 -> 665 bytes .../target/classes/com/example/Registro.class | Bin 5505 -> 5516 bytes 16 files changed, 78 insertions(+), 13 deletions(-) create mode 100644 demo/target/classes/com/example/.idea/workspace.xml diff --git a/demo/src/main/java/Tree/BinaryTree.java b/demo/src/main/java/Tree/BinaryTree.java index 6bfcb49..2feb9ca 100644 --- a/demo/src/main/java/Tree/BinaryTree.java +++ b/demo/src/main/java/Tree/BinaryTree.java @@ -1,4 +1,5 @@ package Tree; +import Queue.Queue; public class BinaryTree { //Atributos de la clase @@ -42,7 +43,8 @@ public int getSize() { public BinaryNode getRoot() { return root; - } + } + //Retorno de hijos de un nodo public BinaryNode left(BinaryNode node) { @@ -53,5 +55,29 @@ public BinaryNode right(BinaryNode node) { return node.getRight(); } + //Retorno del padre de un nodo + public BinaryNode parent(BinaryNode node) { + if (isRoot(node)) { + return null; + } else { + Queue queue = new Queue(); + queue.enqueue(root); + BinaryNode temp = root; + + while (!queue.isEmpty() && left((BinaryNode) queue.first())!= node && right((BinaryNode) queue.first()) != node) { + temp = (BinaryNode) queue.dequeue(); + if (hasLeft(temp)) { + queue.enqueue(left(temp)); + } + if (hasRight(temp)) { + queue.enqueue(right(temp)); + } + return temp; + } + + } + return node; + } + } diff --git a/demo/src/main/java/com/example/Main.java b/demo/src/main/java/com/example/Main.java index 94ead66..a9e7cb8 100644 --- a/demo/src/main/java/com/example/Main.java +++ b/demo/src/main/java/com/example/Main.java @@ -1,18 +1,10 @@ package com.example; -import java.time.LocalDateTime; +import Tree.*; public class Main { public static void main(String[] args) { - // LocalDateTime fecha = LocalDateTime.now(); - // System.out.println(fecha); - - // String fechaString = fecha.toString(); - - //Veamos como parsear la fecha - //LocalDateTime fechaParseada = LocalDateTime.parse(fechaString); - // System.out.println(fechaParseada); - - Menu menu = new Menu(); - menu.menuIngreso(); + BinaryTree tree = new BinaryTree(); + System.out.println(tree.isEmpty()); + System.out.println(tree.getSize()); } } \ No newline at end of file diff --git a/demo/target/classes/DoubleList/DoubleList.class b/demo/target/classes/DoubleList/DoubleList.class index 4cf4c9f1f759d6d5f314bbe62624d08271810837..f2948b7ef61609c1358eaaa00d2ec88becfe5e82 100644 GIT binary patch literal 2607 zcmbuAeNz)x6vm&;3n9ruNCB<3hy~PSlMp~bD;h;WO9=rDW@=~Jx{w88NkWr_w)WlW zmuNpg`N!$d8O518(+|+kHJr>IEOn!D)uJ`d1-4mQ z=TI*_wlrun8d|QEDkVFk!5fPg_-2v|L-3+qM+o5{c#aM~TIB8x9RYRMrK1%=4UufA zV&yi=OIB^sBq!HotIOtk!K{_!*`4&+Yo&TqE)hnqz^Y~E9VTLsDp0CVmpAM$9jp&E zwB>Dc`O`Ub!`;w-yHu-F@Tpk*c&%Aemb9A1qPw~~mObp*c)Sq6Kr^4ku@L%kUX17q zQGQIvTX^t1iCMSoob?4yIUPHOBVLezK^^J6fQ6d1MeiN2j^Ho@6&}p3iLC^L zYgW0sWw{!KMnUnwv6hQwqQ;Z)gaqJ>>vdcSFa`y;z0U zq84aK94o9DhK4B}XV5El-PUmlqjLA2jft+gCBbbo(57aGuu- zNFjz1#Bq%sEV((W4tKpF28J+9v>=Ojgo*GlQu69~g`NQV&+rv%?6ug*93^vHG(=tY zsBtX&AWut^eTeMCWFH~HMY3Na`zW8r$bRL&va=&y_8kiMP}-ET+pq12w^>83yBMSQ z2~7-lIE(aHtqVKFzYQt62p6OhyLeY}uIwLV>4P7g03n0Ounlgo+;6hdCTRRE3Y(;m zDgM7r^UWPc#tFsYrl8#sC>vGlA51Q(A3Fa(8^(YM;`8| zhnXD#o8u+J-0M$|4Tuhu6wZfH%C^Z9smFU literal 2587 zcmbuAeN!7%6vm&MY*>=)LfQr@D6}B0$tDo`UWJC1(kdlTEXY`A)GlO!R7fycQ0w?Q zehK{mGUN0QoN4JyJL3oNGj$xFv%7={!I|nGxp(*OIp_Y)bI-Z?^RMTB0Jwq=VhACu zLo*OTi$da|y=CXt?D9(P?&3pd$yI0>EtN}dULl-HFGSIbsE(L{I1Gi3iOS~Uno}s% z+}!@7g0|||MTL`v{l(z>Or_|INR&1M?Gi$B?b4bo95ZknC%8~6J#rM(q>heeJ4l2W zk~k^IuhAk^I0!wGUWhSbw}IF3hJs$I-CEypzw%P}NPK$@oWf~-sX6Y9^Ch$FP94E2 zp_1q~@aCSwY}MJ4wKE3J;w=VQ*$dK@N*@tL?9&D;WPJMx+qD&vv_Hfyrh^8C_CovH zwPM)7Ia!O`E>&x;)a#nkd+6 z7mIc0F$33SQRkueR){jS zac8+wj6*Aa;(ke2Z95ka*085G0sv4IFE5j?|smH-Ynb;B1QXFVMAZXkiHwZV1xR z5X20Eyhob|LhQe5JaGPv$YE}H?FEwe zGtbaDZSA7#XC$nw$j!mrMt_!h>bvNXDZ7h4|KoiouRRFP!q5CHPXIjUDEg7$?a+Y% z^zcSFL)t;4a2{!lBI7}w_BRfcAp$0GhgeZI@Dxuj1W_xB&`b2_NcQp*oA8ym$!n6g zNBGTv+q9149^!5}au1XH9Jw!$`y#n7k^3^aul`qV-bexWVIN!`ZBvn$yxidTP%HG1Uez3$g>5;&_%U+*+warWRBoh z*aBlLe`$+OGPE(JLeL-+4dod_IQkNUR9q)BugHHRH$8GnD}^HDeND-ApWKwxnvoYs zK27qwq?#r9`y{_d@;Q>vlYD{XAHE{_G_Mc;8hJsLq{gQ*6f^fLS~;EHk(W#U%her$ zn&yz@Z@`BfkXKRKgZ^h~*?sAUc;f&c^Je>mch0A*oCoN}BL7O4_|H~k?Kl*1nF*}0 zzE|rNbP8F@f5$6^sd^7gQ3AQMr1CX{OnIKA9DX7@OhezwnqX?%c(0md+G0^L6HY zz$|Oh!G7P8K9ME&z2@{(-lNYSr0)~-y(18Cp%40@8T}*De@*&tNcSzv<~!1VPx>E7 R|0C&t`d{>O%ru1gzX6i)svZCU diff --git a/demo/target/classes/DoubleList/DoubleNode.class b/demo/target/classes/DoubleList/DoubleNode.class index 1f0271da50a0e7f4000e1665329af5a5933b06fe..dd27aa15b27736df54d37a523cf855e4baf2ff02 100644 GIT binary patch literal 1065 zcmZ{i&2G~`6ot>^$4-q~hc-W?P#{37#7NBsi3O+|DppZI0#$6CbW~i01SL+zV}aDF zQWrcx9}02qj7dW3Z0=moob%1ScYOQj<~M-XIB=0us2-1J{h{v0)1+h5-uP6zC@7TA zql>6Bj7Ddj5B+mJNE8aEQ4%R^cUO>j0e&1B$~wXoo*JAukqAF9u?u;+aS5- zqXYsB-{0|fs%rIrjujSRHfCvd$AStOlJ)W*7YWskET6$`VT0Xb?&y-7^N?f zS*!PHJev&k`&gO_7O!zA(?*k3=lODZI!uUjRmhp60nH^wm8y&v5Xy( zgP2V z_cF~-=fgQlhvS&REXHBS+hn89mPX*rN8rpy(4@jX)qkw|Dr=vPgEcJq0c3p7vsp{e UWb0~^6|P~)Pb91t<_-4$0>Wk1?}!-bQN_*(fFeCc5tbO$w|-$x~|ww-Z@G&qQfbkR8UV-kB8c>>p50*16x_U<~@S zQf94{_mlZ_sNcjAy1JafbLkW7B`6sJ*F8SH;Qxxd6RI1i z??!iztBhS%Q8sz%rqZnnrrLk zgG}?IMLDNwIgTl2S%tORz>*I@>U)ySS{akg S6_6EfV97@$tfyuMM}Gl@@{(l$ diff --git a/demo/target/classes/Queue/ArrayQueue.class b/demo/target/classes/Queue/ArrayQueue.class index 07126f8fa8d8b36d0be12ee36af0f944cc6aa87d..c15428504700fcbd3e3f3633c2b14834d7acf2fd 100644 GIT binary patch literal 1044 zcmZuwT~8B16g{)MrBD`HwtOhGDhjq;#3sJ@AR#eE6OyViC5@36hIYk8D0SJI;FEtt zAARNl6Vb#(etBZZ)` z+t%AHoy4-YMK665@5$N4VJK~|t$Vs1r~3-o%_wcgABaM3QJO|OJ(lCW$2&c_!1Ajc z>1Tb+prkO;Om+M1Q{A&X*{J(Y?4rQxWgBElWhDN`p=>9zt>e|&hza6P5^L%lOUbensG@9H=!<1pHmtyK_#HPsBjX*o0_qyj z0UpA@$sm#sTdJ70mNY!LmzQLDjNgPEFmaDN2?1fTpH z`sj-sbsT>mlc37(PFLItT}0{azgFeUmD`1#de{n$f$^&{w5%(Z>{~*@^ZZ zcKXS_>Ac`*WwpA_$Aey*U*{W9H+(YaY=!YNy|v5Ac%#?SyX!iRA#^kRfO@ zjBTz=n?m1Z_Jy+!gf_wh0FzWH@={BuC}m3-rHffh;k8@JeM1G^|G>mYc$-&~R;Qd(@vx{gTW zTofqblUpWlo~t=o)qiS^8L{fP)+V068F~H2?qr diff --git a/demo/target/classes/Queue/Queue.class b/demo/target/classes/Queue/Queue.class index 675152187559aed555de788d69ca3b78c3e06727..09e597c032e1b653bd19c97f99e755e783e8b986 100644 GIT binary patch literal 1042 zcmZXS+int36o&uJX<(R^(gL>C)_R}<)uQ##3rrJ_iOJZ;U`X_CfNh=1Nf?^wo9Hw2 zq9#fcO?&_!%J}b@9g1+XPiw7j|LfoT&)=WF0qkPeKu93@YAA=Y?2iT_0t-jZu~Tk2 zox}1${YW-Efk@Nw9D%f5b=$p`wB3PMRzpP~_R#IP-kw0XP^>ZYNw+CYgpsshAZ}nz zAT?EG!a_0u-ee()7!z!_Blm~xy6nGp>Mbd-Xm=YRiJZty7Pk!XB$s3nhUiF;DhnG%IQw`bqs2mW;7VPQPE5(`u zZdka2bpoAc({=`QMED|S(wWkf8kZ>)XL(A*4GSw+RotS567qb5zHE1o<#V^M*wJ@t zR`FXFwo&GZjw}&5Vdg%)u9&!ky9Rdt_gRH3+*5Gn&r|>X%xZVoZ}1vrvFW?Gty*An zw1|H~Af#S|s~FdOKaL6R9y2O9FO<$;mVUu{bB6gJNPXj32x*S|XTn8L=FGxJEkB{qVny%l|^~ur*7r!DJISDI7*q0I@ zvJ;4;MqKi9g!+1GSl6sayg9@`LTT9=;qrM?rXN_L4XZva7bI#LOK=s}d@0wF*ErkX zvjs}q{DP=B4SFn`js*r@tOu2ZwmgQ|eYfX&4;YM6xnUvBkgmJkK}S07$g3)2!-A1O65K+HV*zP~LYiV-Yz9>qvTa_oMVHJ-3OMRo6=#=deuIqTP1Hh!hn{&aBK@xuFtP zInLt(#k!-X-GTSPN4-{*iyW6wBwa(P_N#ubLB4$M(tNc(=j zElK+pu39K@lodHV6?Gpp^u%x6eC!{j9k(a<$K9qJz7)+4g)BP#mgqFZ&{e)ZG`+X( zh#}>KW>_P??upjB7h<5pEZKXnhRncx(%ei)L0jsO=$oKpyWSrUThza*Zu-v-HB`GhDt4fb%`>)S}r3Q^Q;UZ~Z*hnn!FLSoLd z7w?tqdf+>9(QP!Dbt;|NEa9Rphn;q%65Q)g7uQQRnVFAbvN|4Y7q?X+buGqs&WmPY1;E0lOMbZF$8B82gyZ1}lkt)MPj8 zqajt3$g+3B#7Ru}d*^M>mMS~7x811QK}Y`YK%)r z?BmriyDp57)Sau4R9(-kIcIUk-r#8RtITu7xzBosgr(l1TZW_+ev8y=ZPm|lfWAO$ zgO)McZlP@o3GRa{ZI7+k#xI5K*b(^7bC$D+^#-X|T!bLbI`n3;%{bCB-icj-@icFT z>GJVB3@ zld^G0zQm3kbL?J2*5ACrgpFH)fPTIsx(g0)96}Epupc9=*eK;n^D6_3zX{|t%w9iW zOWXp}KS-Py&ks@R5JaOGLSL~vis1ns9sWmN;wEzeZ_@fJ?>M96$$OBzhsb-Fyhq48 zLD~YxWB<#`M-}M%n8`}Vjft#JF)Bh9Enm(870xQb)Pxl(nq9;3RV79Ab=|{v2Atq{ zl5b*?noY5pPf^`zWN}9G`OP{O=xI{DN&OsxPRo*Hs>Sn>j-}o+L`WIW&`GXStD;v? zph_>%N#P158D#gxk1simD4np5vqd@1*9%h$r%O;;p|Vm_6IKj literal 1791 zcmbW2-)<9E5XQgbU1wuw7o5a#0wh3E{@80L=1)Qjh7h12LTytiRV27#6R%*wPAq$g zfJ@#2E)X{;H@!%u5~^0}1N3S70JQX*-Nh^ky`V~TcF#F8bAI#9ob{jo{PqWcd0b5+ z0nLDJB8fhQ%tL3>DL0+<`{moK58X9iq3@!%?)eJ}TE4K7LO)Ul(k2FAD(qkOTJ5G= z^}2pp1_k|r>ogPwtFfK>M#HU$=ROnr#ZC7euPF ziEnU>ruRRZ4(AJdY{l|~iId2OmftzPBS8y$*@VnCQ54gGj@#PUbZ>Z_K&fj?jmcKM zb+`Vwwd!_$bXJ>O8LDoqIn5QP;gX1P|}7ROPtlYulUT`@1Sh;7KRL#t-VF& z=fG>4V~!p`3Oc=0jJuB!hhbrct7hnrGEQ-(a2jW#*kwK?cGCU@nVrGyQpehxNQigF{qN)r0DlG&F%IpmW^kivqx$3_5#;g`y0HwH+fN(NO}uX w_?}AE$Wy19w~6sXPthT&9TJbS=9hz-6D!7UL9_mr->WSDhnU484@uz4zd+v!^8f$< diff --git a/demo/target/classes/SimpleList/Node.class b/demo/target/classes/SimpleList/Node.class index 62c955cfabaca6910843eeaa7ea97548f37dacd2..f2c224b8f3c63e7bf83b9954f19bc516dd8b2606 100644 GIT binary patch literal 844 zcmZ{hOHaZ;6ot?5Xr)vt2>8I~4r(GB6Bimc8dn4s8utYzSW>}2HU2D3G$ts3bNli6_730>yCxC>&V_$-8_0$~4(rWfSDHu(EcLy6uO4`VUcJ@s z%T6ee>UyCkP-x5^9r0`+A1KK;W>`Ejj{Sijo(LqXwJR!5d4&amMH?C91WMI;pb|O_ ze;}K8H*Gn(^xA<`HxD~raOI7B^&M}f!fStQA&F(hvoa)?Y@}hRYQ=_$1p%`s!!zx^ zSgp-p7YUj=!ZHQ(Ac3trb`$_8@t`_$}U7FPrD?3sluNjJviwP}#2jIA`D7bqsD7xYW z@H*ehUfO*|@sUM>vM2*km~xh$I9o^M zkLL1hbLr3KjY+JNIF_L!{iKNovr4aPQz?u|3S*LD6I-#7U#zLgM63!sHvVC$U#2Fo It)uUJ0cERoe*gdg literal 844 zcmZ`$%TB^T6g`8`N+}e1_{7())WmK~TwvU2Ts5%JbYGys5-bL)@v}6Mkht&z{3zqS z(+UcjCeu4J=bn4cnUBx6cL1k2)R4l8inNXl6anKpxVsSywTA|$u-3vao#1!I1;;OXrTLD=@YFMXAk5Sl=9L&Hx%+QiE0K=L>wT>px zEiplHPE|shU^!ZKBFvMVf}~uRBaDQS2&7O!w42yU$Zh(wyo~h<{h5jsSRKy>J>Fbd zW~OW#JAX767n`epHrHmh&J$aTv@~}U2eU~5Z2fSd%v>ll7rWR?g#6uZj7!x&`m~8N&q=~+5+YJnEyPNHn1b&kb znkXci_yhb=#xvWEHp}{QXYSm4&OPVOuixK)0(gqYCJF+TcI@^(+DSBF2rQhr=dSI$ z!xQ^m_sr|X0*0?fJQkg{8ic;*Ftc?y6evDZLlr+4m}xXS?0gmUJqt6aNSG*@m=maG zP!=RAWpI+jEQ)M!)X+N`54v7->~?)mV95!3uHSJZrStUBh)>l>V9uFROaWCZTLFuV z^9jBT0~V^NV2N*Xg26Is%xDqyl~%Lb6~H6bW`tGJ*jowj2iuzKI1$ zEl91z2lS(=-f^rpa^21KeVud9y(9np_5B6F9^RYCK+}=s7(CL6NryTX?J&{D>P4lR!YxQ=m-2~08+8lls^wj#@rb*YVE z%1$8b3OdCxjS_=?A;N~d6Vaq2Rhi+K#T->+|DfxKw^8L>RbFwt#v6vQLm4RMQl&b| zee88a#J$Mz7E26<)9J*mGZj0zWWCx{q$?b&SR?I$=z2FI?k^MdKLA?k3(cTg*s>>% z2i=wkPMwxZnQ7Z=J8shnq>AHYHoTO5hH-o3EOlBZ^n9Z72mMP17J*YnX};<*8{Qyj zlPWdDjCgicGgj#G8G21dmTpg8j(mDfvg;ImhDIJxtUZI(en3BaM*bVjN6KZeL3V;V zfIPA=317e_MSO_C7Ah3cS}4VQALy(2jM`V2Pbl7#KjcvpY0e1V_=Bg1Ovjg#_;M<~ zinVn7{6k{?d@8<%r5OK-)T(>smHzD~Ec`u$`Wt`+7+8!*W`~XO66!?T*dZE*cmI>K OoRqViDrYwmZT$wqw~7S- diff --git a/demo/target/classes/Stack/StackArray.class b/demo/target/classes/Stack/StackArray.class index 981e8067dce5a468402d55f6dc3cc17a7da0feb8..1c65d26adafb0c493b40c4189f59989e4e580be2 100644 GIT binary patch literal 1202 zcmZuvO-~b16g{sqWoVhU(o&$Hf+*6N0xkHps4*I&2}wm`O%rv)P(~Q+SEf@FSo$w? z<<1QYG=hnV`~ZKH@x1BKQg9}DU-zE#&OP`2`TOexz&+g65E8gl_N?mrygxp2U29K+ z%F|uzgO#sYjqUvN&0V|d34|>f6-d1;oevfT6tCG55NiTM_nn60JrGc{Yet3B~Z2&Sg@sCqk2 zTgJ{yrw-8&(6()_?CcZHtEfnG+E3~&kJ`C^BM|d(&#YF!HeAUdl`(LYCvQ;Yeaf+6k9k*&f zb)?&g{wr9PKwP5<3Li^|KYQh`*eT9Kj6@(!8sYAxp8+JzpU}5{tDg`ShontN z>ea&@XWaK~g0M-}J9UOTHOMXB|EzDcH1Z>1(vCt`sU$x6g7|mLC9}sczan#bm%5QF zo3DL40-L+VO!;k^L7c4PHAo yr%FViV~aX+eFwTivUI?p135aqNZKVV@B#OQ7=e%!#op=(Q6Qu*x2Y+FJO2R7t-==o literal 1202 zcmZXT+fEZv6o&sjoic5mw$R}qAW}i39h3r|E^3U%L(-(8v4%vwVJIUE_LO#N0vEoA zUU|oj7ibg{6L|n1%J}b@T_}*I`?%J({Y63q*4HwK!sk8%UVA0F&kw->JSY1mnYY+u0R}I^k@+EuUo- zrFY6i8iSDC3u!GVPROn@H$WGEuR#|dK1Se#td9EF^-8-(kiuWC*`>gd zFp$?Qyl8t3zv8!Dr(TTVl0Y(0mi0Q>cimbofy1=3}&;jVV;8*clRvr*$orrfMLwKb>h$-O$%{cW!!@6J}N z$RaS9vE}*|Z;$Rwz0_0w%xNkA;at8?P1qZ{>aA{P`;1g|DK&~f&bdA?NJ~~OS?P`t(UN7o{U>72_KL|C(%iuwn-}4}k5)EXS+dy$mdXjQtD3p8NytCk&fI z@>}3D$1ww)V~k^*qy&aYyvCE!AVLQ7$Z;p_@{Bg!**)F7c! z2KcBX$P7&sh&{%za(}Gc)1muk82Uc+h{QztFjgNXtuWVV6NQ$1AO)pyLlIXM(XtOQ z^a)XMKy;vP<=~i_A{`h5-!XHZ=%ZVG^aw$zJGs6^TNuTR0_mUF8DEuumvP@KmHa^1j%5k21 zN=yEHp5>kjp)_n#!@^1S6KoFHQ-l4Cvy&D>Oc6ZKRC|55*!`P9c+e_*0aA#n$t^B5 G-2M+~s>Bxn diff --git a/demo/target/classes/Tree/BinaryTree.class b/demo/target/classes/Tree/BinaryTree.class index d6a8c0629d84338df6066a744f55bdc565c1e20f..b9761f6f0a924993c2268494b75ddd8490075e77 100644 GIT binary patch delta 594 zcmYk2%WD%+6vlrynPlu_5^8OHL`V@ACX<9z+BDjxuQaW%JgBJ9g@vf2STw|#x)Sn7 zTo5X_bmJ-o89_n1_D^xyoePWSwh?9EJKs6yJLi0N4xA4O=f~04??9R6zVlNJqTP1S z@AMrMvo04%*~}?oo4fw5Upz*K5^)39UFKO(*na1gX)BVM`cC^zyZEBrc~)#a+VLOv z7qSnGcG2Z5=L}nRSz%QXdHTHfy04hbWd9p#j;750HJ2jOhON6?HLS!9mz!qVe&UaA zMn*ASKX!NGQCwMl|7BMns(BUDh0v@xwumu?OM0ertv?$FDX*Rt=KxPj&Z%Eawkm&s_)TA&d z40A&{8)iaqj<{fjQ!L`JEVUImrTyc7FOl9Wsy q!bPI;t_ik9d7F@I*%W12qA}T + + + + + + + + + + + + + + + + + + + + 1694089065475 + + + + + + \ No newline at end of file diff --git a/demo/target/classes/com/example/Credenciales.class b/demo/target/classes/com/example/Credenciales.class index 06ada3ff28903f32568a03e41b4bdecea36bd498..e86f10cf204e25eef4dae7b910ae17a56aabd99e 100644 GIT binary patch literal 1681 zcmZ`(?{Cvq6g@9Zo5Xc#8`6%_0a+N3raue=I<~T|P+(-sprcSWX?$>efOSw@44ss-*jRWDIlkC#tAx>er0#| zJ#B4hP((>uD(~aBOeK4qZ8C#(eyf8!4P^ozyx@AKlZjG|IGW zb%LkOfo?1Hh2gRl3Uqs#v}{B=ein6^m;LAKO=)R@wn31Y`Y?w073i0ulsv7&dv+Xf z7?;_4LUA{CJ!{*seP4$q)X^wl;k`j^{}RQzV`33YGA*C{q>0?XYWn-#nDfzgXU)JR ztO&anRgl$k#6>8tjR|}}Ya@-v8O-rS zq$ICOc9J=l>?HRHbDqU~mf7MeUZaiQG4(4qIi>+i7UOgRZKe(xw8DotM~jp_7+n7C zNbt8%lU0T;=VqG}_OGYDDA7e7Z`a6*i@ZwKg`r!?(yv1_s4X&1N z^sw4k>|sr0B4g`eoyU#ma=DpZZisw%S?=M!*uU!AD`Kzo&}7gz{dQNWB=CbWjwPyU znF?89V-~*+SNXe!Tl_$5;5r`S2DWe$-(wX&^2v+(Qkq|6G>_v69^rA)&Q_v|@BRZh C2P#eg literal 1681 zcmZ`)?{C{w6g@9(V<&aCrA@oFg)OwOCGL-GbaaD`GUylt!dBK%Kw=+U=c#yd?8f-yGz!lisa{a-@WIad+vSCfB*maH-KAsR74JA2F5K+Ag^%Y zsq>4|@SWhG@o@jCc4LM79WU_WErqdKeXjr$1p`G3ldu#nxnZZFpE;dFUpKZR-PVEY zIlk^H8Emys(I?xMrYc zp$=PNI;n(wh9DG-Ljm-Ka7HJQKhvbXCxllltYVG6fqoV@1M*=rnnmh$-NFsLPi?z8 z{w~c*@oLR9?xuwgu%Tc|T+0izLZwzet-Oib3X8{e_)hh>Q~y49-Ym$(M;11vni4Z^ zziz0Bj}_*R5h#K5kD&u8OnhSDu0$G)e9U91>@y47GI$fNA9hKvR%@Q7ciK|lW0l)s zn-S-wt_Qu&zK$L{`#vpGt!36e=3WRZ z6nw3tdrln6gm+!`H03rto&+lHhP}wu_dTIg9=;fBG6NhellKl7bDxVn33AB|uWY7vVwJiBe79}%& z3Tv5~pTt@u*3ubRBCN>AsUL+k)Vh?{RbpK`14~*XSl=Yti@N_L;{!bT3zZ*VVD=^6 zYQ4afsii*NvzPlITf>&N_0iyV{d+mQl^w3j`0%jQ$A@CSGq9J%UhZRyL7xuF-QXkv z%M@sZbFzvB&d3s5T*Gz#Zs0b>zl(KBc@sPQ?EJt^{=~l+nZ8u!Cz;HXc!URdn3S`_ I(;U8i1zwLag#Z8m diff --git a/demo/target/classes/com/example/Fecha.class b/demo/target/classes/com/example/Fecha.class index b8c3ec0d96b5e2d013d2947213fdcf3a8a7c65a3..ad510c4e20da34621e15944115c15748dfb9628e 100644 GIT binary patch literal 1539 zcmaJ>-A)rh7(LTps0);~fXI)aAf+fpMNvygw1(KE-~|LPyc*gGUD)oD?n2~EdfG~ zt{(zJ2GYoAYuG?Gu!;uykm0wcX{+s%?!M~n%6&@-6q-&;T6?l*>U-!+c^#8a7Ms`9 z)~KM|Xf*WOqRrLiqRz~L^4@B}ltszJ9;v!xx1{&M^g6U$Pud=z9P{;Ej~2-7I48Z9+B9|I zIlubL`VrRujpKN(*OSLv%Ii37H-}}cWKk8EyOd$tr_Pb825N%0H)YFndS_bHV}Z}* z$g?3jAbcn7wx!&;rsEu)9M>YSFt>>3pTOO-V-*Ac7{Lb7B$>_;Qt}Mx`s?G5Cc>f-r=k;}O~E3)$1L!TGDfQ?bE!V}lDoK;9fje{wmiJxgOrYr3@WQL1ozR8tZqr?e{1bnK z7n*2HxbO$~qm1u#H?+cHn)x`h=R9-XGbjE1=i(QD4OCKyAZj3%MjQ!&?6EwPWlP#e z<@bljs^JMFHci{~wgjSu;z1HaNE%3`aSLgI(T3A5t534su~d0mHCmExO_Q^zY1iR2 zMzmkFtz2!7rjgTjOxmWCV+Q#&#xWr<*_J1&>evnGeK5TicdjRG&*hgwtyU}6`+4no zUDH0Q5K?uTN?@dJ+G_W-eW<$o^3dW*uI@CXbs)Q@wu8f%*D{G4t6xi*s6_9Q1E$^N zXme0P;z)UKwH6Am`R0xy!r=L9=FcNH@Q4*^MMi7ecj3l&8S)%IVS#)hR7PsgIqf#o zwy9H3^@_Nv)$%dkIF9FfUD?@DUdw5^BMGdgP{x{p$GUJ&1Qz>+G3_(wM3w#P{910y zhUaw81wI!BDi}EW(09^qTFPClJI={zr!wFc6nfy~pTPa|jtX)AIN>8N#|iT+H()kgnOb>Q*i3y2>@MA+U5!URc%!UJA_p-<7Z9OT+>jF~Z)9a%LBE z7tvkXTiKmllVDCraGs>K%kP3~zVs8K6#W51PZ>RBzxASSbDm%X$cvGXLi5QWc8tNAftZB6S>t5vHeR*gFs?gSTw2tuS_!9^CAHqxXajY8b`48@g? zp-2P;AHXMZ;WLPHTNfe&!Le9ZmKJxpmI->>fg4skHjp6_PQW6tekKlI{MNDT$3 zD&|p^VK5Y~yc^H%dtujh(_z8`9ThAvINQc9RsN5cy0GFBN%zroYLNgZogr%WVZ{g5GVcC5C*HFRuZi>xkBT>qAjaV>!} zMaUAXEvr5Hs#oX+vge$C|GICmsCNm83aGuIaPfko^Mq0}!(xWoL~Uf)exwBn8ucRb h)Tg09Cas_f6*Kfwo|zg$YM*8a_79;RNYMZQ delta 183 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 From d4420b8bd3549b768fa5b67183d3be2890545ff0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Juan=20Manuel=20Teher=C3=A1n=20Machado?= Date: Mon, 30 Oct 2023 04:04:01 +0000 Subject: [PATCH 05/24] Add depth and height methods --- demo/src/main/java/Tree/BinaryTree.java | 24 ++++++++++++++++++++++ demo/target/classes/Tree/BinaryTree.class | Bin 1821 -> 2232 bytes 2 files changed, 24 insertions(+) diff --git a/demo/src/main/java/Tree/BinaryTree.java b/demo/src/main/java/Tree/BinaryTree.java index 2feb9ca..ea30b18 100644 --- a/demo/src/main/java/Tree/BinaryTree.java +++ b/demo/src/main/java/Tree/BinaryTree.java @@ -79,5 +79,29 @@ public BinaryNode parent(BinaryNode node) { return node; } + //Retorno de la profundidad de un nodo + public int depth(BinaryNode node) { + if (isRoot(node)) { + return 0; + } else { + return 1 + depth(parent(node)); + } + } + + //Retorno de la altura de un nodo + public int height(BinaryNode node) { + if (!isInternal(node)) { + return 0; + } else { + int h = 0; + if (hasLeft(node)) { + h = Math.max(h, height(left(node))); + } + if (hasRight(node)) { + h = Math.max(h, height(right(node))); + } + return 1 + h; + } + } } diff --git a/demo/target/classes/Tree/BinaryTree.class b/demo/target/classes/Tree/BinaryTree.class index b9761f6f0a924993c2268494b75ddd8490075e77..0f138ded6436f26510518c9e5629f9a86e4989c1 100644 GIT binary patch delta 449 zcmYk0KTpC?6vfYL3zAx!prA$>42w_)hz@GRg}5}K_^*hHBG1rJjG`fp(TNY?go&FY zi!o`?!NJkbM2zb$~e*C)z3nOSt$0hVe$c delta 36 scmdlXIG2y>)W2Q(7#JAL8T>YK?PQwl%xuBPy}5>2hJ}@Zfr-Hv0NpJKeE Date: Mon, 30 Oct 2023 04:06:44 +0000 Subject: [PATCH 06/24] Changed name of setRight method --- demo/src/main/java/Tree/BinaryNode.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/demo/src/main/java/Tree/BinaryNode.java b/demo/src/main/java/Tree/BinaryNode.java index 06aee02..6fd4a62 100644 --- a/demo/src/main/java/Tree/BinaryNode.java +++ b/demo/src/main/java/Tree/BinaryNode.java @@ -41,7 +41,7 @@ public void setLeft(BinaryNode left) { this.left = left; } - public void setright(BinaryNode right) { + public void setRight(BinaryNode right) { this.right = right; } } From f5d4ec128a00e16220d0a34296f01a11cda815c9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Juan=20Manuel=20Teher=C3=A1n=20Machado?= Date: Mon, 30 Oct 2023 04:07:29 +0000 Subject: [PATCH 07/24] Add methods for settings root and nodes --- demo/src/main/java/Tree/BinaryTree.java | 19 +++++++++++++++++++ demo/target/classes/Tree/BinaryNode.class | Bin 1042 -> 1042 bytes demo/target/classes/Tree/BinaryTree.class | Bin 2232 -> 2757 bytes 3 files changed, 19 insertions(+) diff --git a/demo/src/main/java/Tree/BinaryTree.java b/demo/src/main/java/Tree/BinaryTree.java index ea30b18..ee453e7 100644 --- a/demo/src/main/java/Tree/BinaryTree.java +++ b/demo/src/main/java/Tree/BinaryTree.java @@ -103,5 +103,24 @@ public int height(BinaryNode node) { return 1 + h; } } + + //Agregar una raíz + public void addRoot(Object element) { + root = new BinaryNode(element); + size = 1; + } + + //Agregar hijos + public void addLeft(BinaryNode node, Object element) { + BinaryNode newNode = new BinaryNode(element); + node.setLeft(newNode); + size++; + } + + public void addRight(BinaryNode node, Object element) { + BinaryNode newNode = new BinaryNode(element); + node.setRight(newNode); + size++; + } } diff --git a/demo/target/classes/Tree/BinaryNode.class b/demo/target/classes/Tree/BinaryNode.class index b2ba5c31c91f0977a6d8145de1084f1349c0fc26..f33727e99dfabea9d4a7a4cf0aab5cba9fe3ddf7 100644 GIT binary patch delta 14 VcmbQlF^OYCDI;Uh<}$`POaLP;1a<%b delta 14 VcmbQlF^OYCDI;Ui<}$`POaLS91eO2* diff --git a/demo/target/classes/Tree/BinaryTree.class b/demo/target/classes/Tree/BinaryTree.class index 0f138ded6436f26510518c9e5629f9a86e4989c1..da62e9e251cc11496f894fc91387a95159e7aaf6 100644 GIT binary patch delta 563 zcmbV|PfG$p7{;IdQ<^QJrjZ05BiF*Cq^CNIL4@EbS9koEyBoS0mf(lzlSo-n(5*`! zDtcy(NIC>vW|;S#=l6SOp5kw*$ot3hD}VwnW|0GJ8nSHr#Pj?JGN>C^LrFnM^o1i_ zUqPbWvqo0FZ@KOKaib@izHBp67A>}ScFU&&A@WCE*BXo~o-Inh1KFx%w+yt=VR$I~ zMK~$L#pQIi${Vh@k|+gXIa{~g35M$%a3mm1Kv29r)QU>%ZlV=drX?s?=c_8vp>j`{ zFUZt#k2sqnYU*>uW~{16aE(Ia>cD`DI6Q3dw7Ezji4;%F!$N~h1x?srY==3Wy|hH{ z5najcKR}qZdrV_`eaVpsZVvgKK7E(i!YJ^V3&OW2jcu%wPikOPnTVmwn#OAH5BIrr ZOLgt%`xfpoN!N7W&^`Hw+vQ9uyiXo;Vl4mw delta 36 scmX>qx Date: Mon, 30 Oct 2023 04:23:11 +0000 Subject: [PATCH 08/24] Add remove method, waiting for testing --- demo/src/main/java/Tree/BinaryTree.java | 35 ++++++++++++++++++++++ demo/target/classes/Tree/BinaryTree.class | Bin 2757 -> 3121 bytes 2 files changed, 35 insertions(+) diff --git a/demo/src/main/java/Tree/BinaryTree.java b/demo/src/main/java/Tree/BinaryTree.java index ee453e7..fce1707 100644 --- a/demo/src/main/java/Tree/BinaryTree.java +++ b/demo/src/main/java/Tree/BinaryTree.java @@ -122,5 +122,40 @@ public void addRight(BinaryNode node, Object element) { node.setRight(newNode); size++; } + + //Remover un nodo + public BinaryNode remove(BinaryNode node){ + BinaryNode parent = parent(node); + if (hasLeft(node) && hasRight(node)) { + if (parent.getLeft() == node) { + parent.setLeft(null); + } else { + parent.setRight(null); + } + return node; + } else if (hasLeft(node) || hasRight(node)){ + if (hasLeft(node)) { + if (parent.getLeft() == node) { + parent.setLeft(left(node)); + } else { + parent.setRight(left(node)); + } + } else if (hasRight(node)){ + if (parent.getLeft() == node) { + parent.setLeft(right(node)); + } else { + parent.setRight(right(node)); + } + } + return node; + } else { + if (parent.getLeft() == node) { + parent.setLeft(null); + } else { + parent.setRight(null); + } + return node; + } + } } diff --git a/demo/target/classes/Tree/BinaryTree.class b/demo/target/classes/Tree/BinaryTree.class index da62e9e251cc11496f894fc91387a95159e7aaf6..a886c1e1253739ce02376845fe3bb6bff5bebb54 100644 GIT binary patch delta 401 zcmZ{g&r1SP5XV2yT~ypavJ7cSBtgX8AR-WgE>TB21O;6KFNs(|9ka41`$0d9Xe|#B zoD%doWrQyWz2fPuvM30o3I;8)~km#F??*vm!*9? zYP%0}o@DwjFSW_~e9Er&>-NEU4;=77$))~3ZDmf4nD{jk;`a!$&j<%3sgdT83`bZT zGrSKN=}O@@d0m;7)Fmwh@`HfreTIvR2QZqe1MH#7eiIw delta 36 scmdleaa5G+)W2Q(7#JAL845OXePN!=&SJqRu-Sp7lZ};ufr%j>0O*hkDgXcg From 81a07263473e9eaa786506f29c3ed5c4db288807 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Juan=20Manuel=20Teher=C3=A1n=20Machado?= Date: Sun, 29 Oct 2023 23:24:23 -0500 Subject: [PATCH 09/24] Update README.md --- README.md | 45 +-------------------------------------------- 1 file changed, 1 insertion(+), 44 deletions(-) diff --git a/README.md b/README.md index b2ba9d7..d7592e6 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # DataStructuresUNAL -## Práctica 2 +## Práctica 3 ### Integrantes: @@ -9,46 +9,3 @@ ### Instrucciones: - -1. Los empleados de la empresa se encuentran almacenados en un archivo de texto denominado -“Empleados.txt”; en este archivo, se almacena la información personal (nombre, cedula, fecha de -nacimiento, ciudad de nacimiento) y de contacto (teléfono, correo electrónico y dirección (calle, -nomenclatura, barrio, ciudad, urbanización, número de apartamento)). Al iniciar el sistema debe cargar -los empleados de la empresa desde el archivo de texto (ver archivo empleados.txt de ejemplo). -2. Para acceder al sistema, cada empleado tiene una contraseña, conformada por número y letras. Las -contraseñas de cada usuario se almacenan en un archivo de texto “Password.txt”. Este archivo incluye en -cada línea: la cedula de ciudadanía de un usuario, su contraseña, y una descripción si el usuario es -“empleado” o “administrador”. Para acceder al sistema, el usuario debe digitar su número de -identificación y contraseña, y el sistema debe verificar con la información de este archivo si los datos son -correctos (ver archivo Password.txt de ejemplo). -3. El “administrador” del sistema tiene la posibilidad de realizar las mismas funcionalidades que los -empleados, pero además puede, registrar nuevos usuarios al sistema, cambiar contraseñas, y eliminar -usuarios. Cuando se realicen este tipo de cambios en la información de los usuarios, se debe actualizar el -archivo Empleados.txt y Password.txt, manteniendo la consistencia entre ambos. -4. El “empleado” puede revisar su bandeja de entrada, los mensajes leídos, proyectar mensaje que se -mantienen en borradores, y enviar mensajes a usuarios del sistema. -5. La bandeja de entrada de cada empleado mantiene la colección de mensajes electrónicos que aún no -se han leído. Al consultar la bandeja de entrada por consola, esta debe presentar la fecha de recepción, -el titulo del mensaje y el nombre de la persona que lo envió. Adicionalmente, debe permitir seleccionar -cual mensaje se desea leer (tip: se recomienda implementar la bandeja de entrada como una lista -doble). -5. Una vez leído un mensaje electrónico se elimina de la “bandeja de entrada” y pasa a la carpeta de -mensajes leídos. El empleado puede consultar los mensajes leídos de forma secuencial, iniciando desde -el mas antiguo (tip: se recomienda implementar los mensajes leídos como una cola). -6. Cuando un usuario quiere redactar un nuevo mensaje, por consola, se debe pedir: -• Cedula del usuario al que se envía el mensaje -• Título del mensaje -• Mensaje -Además de la información que redacta el usuario, cada mensaje de forma automática se le asigna la -fecha y hora de envió. El empleado tiene las opciones de guardar como borrador, descartar o enviar el -mensaje. -7. Cuando un empleado decide almacenar como borrador un mensaje de texto, el sistema almacena el -mensaje en una colección, donde el empleado solo puede acceder al último borrador (más reciente). -Para acceder a otro mensaje, el empleado debe descartar el mensaje actual o enviarlo (tip: se -recomienda que los borradores se almacenen en una pila). -8. Cuando un empleado decide descartar el mensaje, este se elimina del sistema. -9. Cuando un empleado envía un mensaje, el sistema lo agrega a la bandeja de entrada del destinatario -correspondiente. -10. Los mensajes en la bandeja de entrada, mensajes leídos, y borradores de cada usuario se almacena -en archivos de texto, denominados por el número de cedula del empleado, seguido por las letras BA -para la bandeja de entrada, ML para los mensajes leídos y B para los borradores. From 90f262b66e6c1f3971120e697c19c1e5ba092ac3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Juan=20Manuel=20Teher=C3=A1n=20Machado?= Date: Mon, 30 Oct 2023 22:25:23 +0000 Subject: [PATCH 10/24] Implement traversal techniques, issues w/ parent method --- demo/src/main/java/Tree/BinaryTree.java | 36 +++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/demo/src/main/java/Tree/BinaryTree.java b/demo/src/main/java/Tree/BinaryTree.java index fce1707..518a3ce 100644 --- a/demo/src/main/java/Tree/BinaryTree.java +++ b/demo/src/main/java/Tree/BinaryTree.java @@ -157,5 +157,41 @@ public BinaryNode remove(BinaryNode node){ return node; } } + + //Recorridos de los árboles + public void preOrder(BinaryNode node) { + if (node != null) { + System.out.println(node.getData()); + if (hasLeft(node)) { + preOrder(left(node)); + } + if (hasRight(node)) { + preOrder(right(node)); + } + } + } + + public void inOrder(BinaryNode node) { + if (node != null) { + if (hasLeft(node)) { + inOrder(left(node)); + } + System.out.println(node.getData()); + if (hasRight(node)) { + inOrder(right(node)); + } + } + } + public void postOrder(BinaryNode node) { + if (node != null) { + if (hasLeft(node)) { + postOrder(left(node)); + } + if (hasRight(node)) { + postOrder(right(node)); + } + System.out.println(node.getData()); + } + } } From 840b407541a515f310c977229d0e7f81f399f1e3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Juan=20Manuel=20Teher=C3=A1n=20Machado?= Date: Mon, 30 Oct 2023 22:25:43 +0000 Subject: [PATCH 11/24] Doing some testing --- demo/src/main/java/com/example/Main.java | 24 +++++++++++++++++++++ demo/target/classes/Tree/BinaryTree.class | Bin 3121 -> 3759 bytes demo/target/classes/com/example/Main.class | Bin 665 -> 1325 bytes 3 files changed, 24 insertions(+) diff --git a/demo/src/main/java/com/example/Main.java b/demo/src/main/java/com/example/Main.java index a9e7cb8..b976a15 100644 --- a/demo/src/main/java/com/example/Main.java +++ b/demo/src/main/java/com/example/Main.java @@ -6,5 +6,29 @@ public static void main(String[] args) { BinaryTree tree = new BinaryTree(); System.out.println(tree.isEmpty()); System.out.println(tree.getSize()); + + //Agreguemos valores a la raiz + + tree.addRoot(1); + + System.out.println(tree.isEmpty()); + + //Agreguemos valores a la izquierda + tree.addLeft(tree.getRoot(), 2); + tree.addRight(tree.getRoot(), 3); + tree.addLeft(tree.left(tree.getRoot()), 4); + tree.addRight(tree.left(tree.getRoot()), 5); + System.out.println(tree.parent(tree.left(tree.getRoot())).getData()); + + //Recorrido preOrder + tree.preOrder(tree.getRoot()); + + System.out.println(); + //Recorrido inOrder + tree.inOrder(tree.getRoot()); + + System.out.println(); + //Recorrido postOrder + tree.postOrder(tree.getRoot()); } } \ No newline at end of file diff --git a/demo/target/classes/Tree/BinaryTree.class b/demo/target/classes/Tree/BinaryTree.class index a886c1e1253739ce02376845fe3bb6bff5bebb54..f7c4e0ff894fd1c723887ba294591381e524ae1d 100644 GIT binary patch delta 677 zcmajbOG_J36u|NSWX6sehZ59CP}E&5$s%U?u0R+-x$nSaj{IiAzaA&6iw-=wy96lTS`NnVg$)9ox!|81(VR z){bPiOLGRL3(&1hL|igLj4h$ z3%r>sXxaFe*{IqGs>)LQ9FvN?TNTwuQC*12`_z;bP({1NBaM4h?Kk!+sM-#8X!|cS ksJdiA2mk;8 diff --git a/demo/target/classes/com/example/Main.class b/demo/target/classes/com/example/Main.class index 2da82682d6e917852ea08fddb3b1fc80ce3d80ce..9bb4c2861a83e0a54c7180af57ffa331f2222a62 100644 GIT binary patch literal 1325 zcmZ`&%Tg0j5IqASlf@(fqzUlbbDMub1a@y;F~lHGK6LX1zO-&(3;i_Ik#C}mDZxR zT9OLd(q>*Ow1-K|K=Sf%rfOy&>34v*Yjs>OE-$6@tleXWm&YOOit*A zW^MB`gfN0Zw4+l+$DX>g+f`eZ1&*SNYBo2ig$@r^Ho(`UBXAcJ)O^W>>)#J|a3xa$(;VloXqGex>K;-m?(ba&u3O*%9(uh^X||@I zoqDTNTO)$!Fw1io=AtqJ^LRv+RxFvZ3ew`JeSI={y~uKupQ9cNhz^T&&v?i zgLF+XM@9z=HED5=^rYU`1kugi1*rZuI(w+Ae(Gol5n9?d%pgkhX~!Bm@D^Qohi<$l kuMafDkLbf^B9b}j^!mm!R!9oq6Q1EYv7+Dw$xV3q7ni6e#{d8T delta 106 zcmZ3>HItR=)W2Q(7#JAL84NaZH84)jW?sg{5X-;>gbWO_lciZ?oHqhlOblE=Qiy>C uNU||-Ft7vJ91JoHoDAGR5iy8r1}z3{AdiDVltG6 Date: Mon, 6 Nov 2023 11:44:33 -0500 Subject: [PATCH 12/24] BinarySearchTree and BSTEntry almost done --- .idea/workspace.xml | 8 +- demo/src/main/java/Tree/BSTEntry.java | 49 +++++++++++ demo/src/main/java/Tree/BinarySearchTree.java | 82 +++++++++++++++++++ demo/src/main/java/Tree/BinaryTree.java | 2 +- 4 files changed, 139 insertions(+), 2 deletions(-) create mode 100644 demo/src/main/java/Tree/BSTEntry.java create mode 100644 demo/src/main/java/Tree/BinarySearchTree.java diff --git a/.idea/workspace.xml b/.idea/workspace.xml index 2f81ed8..dbc843d 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -4,7 +4,12 @@