From 67d7509fafdeb849f0c3fec73dd165ffd37708ee Mon Sep 17 00:00:00 2001 From: Maoake Teriierooiterai Date: Tue, 9 Dec 2025 11:42:37 +0100 Subject: [PATCH] all basics functions has been tested we can start the sort algorithms --- .main.c.swp | Bin 0 -> 12288 bytes .parsing.c.swp | Bin 0 -> 12288 bytes main.c | 44 +++++++++++++++++++++++++++++------ parsing.c | 18 +++++++++++--- push_swap.h | 37 +++++++++++++++-------------- stack_utils/.push.c.swp | Bin 0 -> 12288 bytes stack_utils/.stack_add.c.swp | Bin 0 -> 12288 bytes stack_utils/push.c | 34 +++++++++++++++++++++------ stack_utils/stack_add.c | 4 +--- 9 files changed, 99 insertions(+), 38 deletions(-) create mode 100644 .main.c.swp create mode 100644 .parsing.c.swp create mode 100644 stack_utils/.push.c.swp create mode 100644 stack_utils/.stack_add.c.swp diff --git a/.main.c.swp b/.main.c.swp new file mode 100644 index 0000000000000000000000000000000000000000..e3e8cd0f04f546a05b90cebf76c5fd62def8e6c4 GIT binary patch literal 12288 zcmeI2Piz}S6vkhRTG*BV0;$lRCbp_L>%{9njp}Stt4&G~QsG1@#6N3ouj5he&9b{r zlcvA{xNxgf_1beU?Tr(nDmQK%5T_o1BZwR7sjB#9cgJyB8YLoFiu5M>d1iOs`)1~| zUZg0~C|-K|9Z@Zm3GEf4jYp^D-gx7|*c-?7;3F=tu48>KIkZrJ_pC zX2!*9uP*Ighcnm#c7PpV2iO62fE{25*a3E6-#QTa2j~mz{$P573u%Agi9UVgjvZhJ z*a3Ec9bgC80d{~LUfBpCW-Is|z0b}61mxwNd z6X3@&qBSr9etD7TYw#85fe*k1@Fq9}o&$d$CHfQm0Um&#!METRxB=EcA6x>9U>?kZ z0*?*MgCD>R&<5`V6Fho>=r3>&TnAr*K6ncp z2S>mI_;3f@0-u6Ka2C7)VvqLWcg$O62iO62fF0PW1D}x*Mo#l`z1el0pzd_Lx%fGp zt~pa;Fr1tt1EGc=NH0=R^>}I!+t`f7aAILXB|I~FSQ*jhlIS1^QoU`H_hzZasFw1# zuC(>(e|6It*%3##(#Y%!M|P&9#>5#RJsH&-aycojFy{oz%_)J;RaFlgWXQINUy7P2 zO{R4lBJtg&ix=mJj3~`C%tUjJHVEZvsH>(q43riWn;j<*rWp$pp{nDeZs#%|o@{+A zKJqeCBI^0mwN*d|p*FCa_>U?YV2wpvZOhQ@Pmom5%JXA~#49<7Y%$24RFV z7=au015ZFmoo+ndxVUyrjOz%!x%bX3h?7lWCmZx3skSDun->>V0B~ zVIn};vAQB#PyJd-gG6E*PM;(RGu}gLSiB-`6H2ey?YCSpA4aXNY!o`Rt?%T@mRA{E z`0d0uehZxpk!8a9y=ua=l;9pVEx6>joXBn2qFgM`Sf#R6oE4>#U759KW<+CM=@)|3hX3!<Fx6ohamH zEIofdK7NK7-PY)o$Io&P@2XC(X_{U%=Z|na@2be&wTK;^pouq}ank;*=CDakzy(w;~F|4>y z7ma|Mf=?z+V97)h@#;(vBhYlRMq5|}{n~dciC2N4R7ql4{US2%8Pj_} zq6PK)hUz@T(huU%%FNP&=NH}8v?g_e=VFPI4dv>U@2T$GL?rKOrHrN)%&f7orczr~ z#6DAXE!ev;zA-r!<>uXPaN6irT5#h!nMl{wl4z-dv40ZGX!n|3!L9n9SoqS}>=zro Bm16(^ literal 0 HcmV?d00001 diff --git a/main.c b/main.c index 3d91552..c5cf6e9 100644 --- a/main.c +++ b/main.c @@ -6,35 +6,65 @@ /* By: mteriier +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2025/12/08 18:32:35 by mteriier #+# #+# */ -/* Updated: 2025/12/08 20:36:49 by mteriier ### ########.fr */ +/* Updated: 2025/12/09 11:39:55 by mteriier ### ########lyon.fr */ /* */ /* ************************************************************************** */ #include "push_swap.h" #include +#include -void print_all_stack(t_stack *stack, t_stack *first) +void print_all_stack(t_stack *stack, t_stack *first, char pile) { t_stack *tmp; + int i; tmp = stack; - printf("TAB\n"); + i = 0; + printf("TAB %c : \n", pile); + if (!stack || !first) + return ; while (tmp->next != first) { printf("[%d] ", tmp->value); tmp = tmp->next; + i++; } printf("[%d] \n", tmp->value); } int main(int argc, char **argv) { - t_stack *first; + t_stacks *stacks; + stacks = NULL; if (argc > 1) { - first = parsing(argc, argv); - print_all_stack(first, first); + stacks = init_big_stacks(argc, argv); + print_all_stack(stacks->a, stacks->a, 'A'); + print_all_stack(stacks->b, stacks->b, 'B'); + sa(stacks); + print_all_stack(stacks->a, stacks->a, 'A'); + print_all_stack(stacks->b, stacks->b, 'B'); + pb(stacks); + print_all_stack(stacks->a, stacks->a, 'A'); + print_all_stack(stacks->b, stacks->b, 'B'); + pa(stacks); + print_all_stack(stacks->a, stacks->a, 'A'); + print_all_stack(stacks->b, stacks->b, 'B'); + rra(stacks); + print_all_stack(stacks->a, stacks->a, 'A'); + print_all_stack(stacks->b, stacks->b, 'B'); + pb(stacks); + pb(stacks); + print_all_stack(stacks->a, stacks->a, 'A'); + print_all_stack(stacks->b, stacks->b, 'B'); + rrb(stacks); + print_all_stack(stacks->a, stacks->a, 'A'); + print_all_stack(stacks->b, stacks->b, 'B'); + rrr(stacks); + print_all_stack(stacks->a, stacks->a, 'A'); + print_all_stack(stacks->b, stacks->b, 'B'); } - stack_clear_all(first, first); + stack_clear_all(stacks->a, stacks->a); } diff --git a/parsing.c b/parsing.c index 3c377e2..abf65e6 100644 --- a/parsing.c +++ b/parsing.c @@ -6,17 +6,16 @@ /* By: mteriier +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2025/12/08 16:21:05 by mteriier #+# #+# */ -/* Updated: 2025/12/08 20:31:37 by mteriier ### ########.fr */ +/* Updated: 2025/12/09 10:19:17 by mteriier ### ########lyon.fr */ /* */ /* ************************************************************************** */ #include "push_swap.h" #include -#include t_stack *parsing(int argc, char **argv) { - size_t i; + int i; int stock; t_stack *first; t_stack *new; @@ -39,3 +38,16 @@ t_stack *parsing(int argc, char **argv) } return (first); } + +t_stacks *init_big_stacks(int argc, char **argv) +{ + t_stacks *stacks; + t_stack *a; + + stacks = malloc(sizeof(t_stacks)); + if (!stacks) + return (NULL); + a = parsing(argc, argv); + stacks->a = a; + return (stacks); +} diff --git a/push_swap.h b/push_swap.h index 454c1dd..6f0b3f4 100644 --- a/push_swap.h +++ b/push_swap.h @@ -6,7 +6,7 @@ /* By: dgaillet +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2025/12/08 14:18:06 by dgaillet #+# #+# */ -/* Updated: 2025/12/08 20:28:41 by mteriier ### ########.fr */ +/* Updated: 2025/12/09 10:17:27 by mteriier ### ########lyon.fr */ /* */ /* ************************************************************************** */ @@ -27,23 +27,24 @@ typedef struct s_stacks } t_stacks; /*STACK_FUNCTIONS*/ -void pa(t_stacks *stacks); -void pb(t_stacks *stacks); -void rra(t_stacks *stacks); -void rrb(t_stacks *stacks); -void rrr(t_stacks *stacks); -void ra(t_stacks *stacks); -void rb(t_stacks *stacks); -void rr(t_stacks *stacks); -void sa(t_stacks *stacks); -void sb(t_stacks *stacks); -void ss(t_stacks *stacks); +void pa(t_stacks *stacks); +void pb(t_stacks *stacks); +void rra(t_stacks *stacks); +void rrb(t_stacks *stacks); +void rrr(t_stacks *stacks); +void ra(t_stacks *stacks); +void rb(t_stacks *stacks); +void rr(t_stacks *stacks); +void sa(t_stacks *stacks); +void sb(t_stacks *stacks); +void ss(t_stacks *stacks); /*FUNCTION UTILS*/ -t_stack *new_stack(int value); -void stack_add_back(t_stack **stack, t_stack *new); -void stack_add_front(t_stack **stack, t_stack *new); -void stack_clear_all(t_stack *stack, t_stack *first); -t_stack *parsing(int argc, char **argv); -int ft_atoi(const char *nptr); +t_stack *new_stack(int value); +void stack_add_back(t_stack **stack, t_stack *new); +void stack_add_front(t_stack **stack, t_stack *new); +void stack_clear_all(t_stack *stack, t_stack *first); +t_stack *parsing(int argc, char **argv); +t_stacks *init_big_stacks(int argc, char **argv); +int ft_atoi(const char *nptr); #endif diff --git a/stack_utils/.push.c.swp b/stack_utils/.push.c.swp new file mode 100644 index 0000000000000000000000000000000000000000..00fbb73ad1adf6b29da814e96f3faefefc26c7bd GIT binary patch literal 12288 zcmeI2O-~a+7{?#=!iuQTn;J7vgS6OgTR>rf#;6BP)Of*ove~kWtd_Rf-J-mD@a1Oo z;LYd|S)yFU7tFBdayqlA$@zo~gHa5TpS~E~}Cz695)R)bqy#cYV zPO*L4SZias7aL#$Y=8~00XDz}*Z><~1OJ5qx3Z2dV<+pw-3)}+bq&|>EnnCG8(;%$ zfDNz#Hoykh02^QfY=8~0fq&3|ZV=sVBf6nr@%aD0{QLjm7NWDD1H9NwbOG!DuR4e> zfxY1ECZcQLDmV{LgE24+hQMCX4K{)w?L?o!OYj&x0QbQ~a1_KrH~7Ah=o?r9U%*H3 z0lWdP!87m_+yS@195@4xfE*YGZQvdD^Bg<{H-WdmMQ{&X2L?C=PJlGn3EDvd>;au% zH|PLg;pY>04<3Qr;5x7Y7dF5K*Z><~18krb0}G_!SMg8!Imui>j0%1Ez2)zM9(nIH z;IKb*#c0{46q31$ZBAR|sv|}h&<~RYuQ*hw8%BP@E|=V%?w;D@@qI$ihaDSxHoo^q zHoYn1(AccK*}Y&1%UTw~6|cHhPeVNLP*bQwpsErs-*)#B>VuYd zmx3|F94TheF{4wV@5!;_$I)m_h??ebQDQW*&NwN$|G`D$y=B{`TeV9fjOYwDCg$fw zSWV{iIFaJ!{T3w=qzuy>O_wc0sT6v`CPyTK!RQ{dO5??QScYosM~vDgJ3+pD|JU6!WFukcmJjCNECF;t1iumZGZvDu2E*R^F^lCCGk|_ft zbF^0V(&~v=XP7PngHz(IWre-8UM;AFmEa-+|0qg!)-)N3npe>9SAjA(dJO{C?2Cdg Hok~9eg;Oxv literal 0 HcmV?d00001 diff --git a/stack_utils/.stack_add.c.swp b/stack_utils/.stack_add.c.swp new file mode 100644 index 0000000000000000000000000000000000000000..502b12df00d6a786fe2e9628d153b91ab9bcdde4 GIT binary patch literal 12288 zcmeI2O-~a+7{><^jH{wXFY0NaQTrmhrBEp=5F;KmL2huAlqq0FW$C5ecBgyf06DOy19egEDzvknTz6K+COSL# z*)wB%E~5Z)fE*wP$N_SI93ThC0djyG_1x!sZ0Vy*>c|0dfE*wP z$N_SI93ThC0djyGAP2|+a^Mg;P_!8Pc9gM?8j{EV|JC>Z=cgFE3);bplZ?%P3*c2d zV+-Iicz=SiN8lm22gbn|=mU9h30wqi;MZ}+zJj-413Uxk;3;?lY)}HDU>N8i1I~jZ z;Kwn>zJo8|GuQy@U=28+3@lIr2IvCkKs)$}XZr-?GkySXz-vH_93ThC0djyGAP2~S zL+-#T)6zlxBp>9SJ%5d9{^~Y!L4_r%DkmmUYMBfcT#@l9EYNDUsMkD>p;P9`j!@KhUJ%GHjFdYj!(pmx zs9LkB!dRskx$Cw~>3$BTk)dGRPVe!3j(4KpK&= zMc1vAlD@NKSIX*CQ`nkmQMOt-@Mf7cUx%lkbUYF6l|pr)@9)?-kmq|IkPt_1+A%~j{*6quhI_u`UqFm`bThQwcU=_c@Yk4MpS` ysVl+w%}6ipQ<0k)GYpLeVW$N5tFkH1G?gSqvf=JO32su4E<(Wrd!gV(XRzOV4z>IM literal 0 HcmV?d00001 diff --git a/stack_utils/push.c b/stack_utils/push.c index ef35775..126ff89 100644 --- a/stack_utils/push.c +++ b/stack_utils/push.c @@ -6,28 +6,48 @@ /* By: mteriier +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2025/12/08 15:09:40 by mteriier #+# #+# */ -/* Updated: 2025/12/08 19:37:01 by mteriier ### ########.fr */ +/* Updated: 2025/12/09 11:36:36 by mteriier ### ########lyon.fr */ /* */ /* ************************************************************************** */ #include "../push_swap.h" +#include void pa(t_stacks *stacks) { - t_stack *a; + t_stack *b_push; if (!stacks || !stacks->b) return ; - a = stacks->a; - a->value = stacks->b->value; + b_push = stacks->b; + if (stacks->b->next == stacks->b) + stacks->b = NULL; + else + { + stacks->b->next->previous = stacks->b->previous; + stacks->b->previous->next = stacks->b->next; + stacks->b = stacks->b->next; + } + stack_add_front(&(stacks->a), b_push); + } +#include + void pb(t_stacks *stacks) { - t_stack *b; + t_stack *a_push; if (!stacks || !stacks->a) return ; - b = stacks->b; - b->value = stacks->a->value; + a_push = stacks->a; + if (stacks->a->next == stacks->a) + stacks->a = NULL; + else + { + stacks->a->next->previous = stacks->a->previous; + stacks->a->previous->next = stacks->a->next; + stacks->a = stacks->a->next; + } + stack_add_front(&(stacks->b), a_push); } diff --git a/stack_utils/stack_add.c b/stack_utils/stack_add.c index d7cd0c6..761143a 100644 --- a/stack_utils/stack_add.c +++ b/stack_utils/stack_add.c @@ -6,7 +6,7 @@ /* By: dgaillet +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2025/12/08 15:52:40 by dgaillet #+# #+# */ -/* Updated: 2025/12/08 20:33:58 by mteriier ### ########.fr */ +/* Updated: 2025/12/09 08:51:33 by mteriier ### ########lyon.fr */ /* */ /* ************************************************************************** */ @@ -26,8 +26,6 @@ t_stack *new_stack(int value) return (new); } -#include - void stack_add_back(t_stack **stack, t_stack *new) { if (!stack || !new)