From f0bb14df471ac9bb1ebb3352c8266ce8c8503d95 Mon Sep 17 00:00:00 2001 From: jaob99 <32195842+jaob99@users.noreply.github.com> Date: Sun, 1 Oct 2017 13:27:42 +0100 Subject: [PATCH] more functions added push(const void*) and pop(void*), changed add(const void*) to return index of new element --- README.md | 2 +- build/liblist.a | Bin 15460 -> 16732 bytes build/test.exe | Bin 48274 -> 49370 bytes include/list.h | 9 +++++++-- obj/list.o | Bin 12163 -> 13395 bytes obj/sorting.o | Bin 2713 -> 2705 bytes src/list.c | 52 +++++++++++++++++++++++++++++++++++++++++++++++- src/test/main.c | 3 ++- 8 files changed, 61 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index c4094d3..1a3e440 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,2 @@ # list_t -Dynamically allocating list type for C with various functionality (tested on Linux and MinGW). +Dynamically allocating linked block list type for C with various functionality (tested on GNU/Linux and MinGW). diff --git a/build/liblist.a b/build/liblist.a index 8a1068fb55382936e8938e936d67e1446768db65..ab5e1ff360c8c23e151c15e32a868c8f1cb1fdc0 100644 GIT binary patch literal 16732 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 literal 15460 zcmcgz3wTvmmEPy%Vv63FHKy1WWZAta?xUI9wEZF!8vLXeleQIc62N%gIGGBoeEzm;27Ij(N>xN-+P~Z&JEPp zXFcC{Pu5=RUu&-<&eS$6>^CEt|5VH>pFR7A8!P6_jYi9*DEN*>XU@G* zD{Ss3gcvD=^}WB&ui~M2W4tz#sLmz?sJcXJHj~~?vNqjf{>G~_k|lBR`b@fs$?Cc~ z{%OuNHm2$&HkrthlTBA=GS%DT&4C2TR4cIoop`FAsk*cwm~7oz-6H>{GtyjbW4c*- zCkX{j#hVk`C{6j^r{b+L|5RN0k&36XiHs^)OT0Oqm99dkI$qt{n#g41I}({R(zWqa zb2eTr;>i5{xm4}lt;|_8rdqRQX}>Mst`#fF(Ymvv(TW=?X3v!ExVhg-s|XD##PX>^ zES8jGm1XI&|6E2}f7cRX+C;@evx}%G-&|H#ovrp^*Q6GU@?&K+t*zG-2AF$@%j6p@ zf&A%k00a{D7SFgbpZ8pUAx;7}Z<6B2B(7x1jEdQLz`nK+|2QI#1$)5FEYD*`k@}ZW zLR^}x*icir8)qqoet!jmXMht^6a!VHaIw`emIYK-OTtA&}6g<{TRr|TsZI?=(iM=U~QsH7r`wJa0*E&)B72(F-Y(hREek`2%DHFv9jun69SliPj8{hjB)Y~pi>4=4kkHp-zV@|s>@jT76$9e+Hr4!xb zODDnuAv$6`9tPxdG=S_ngfvA@kZO-zR=y1Eh+Xc0t;=n@E{kkGI5Ypf;hh&QTKga{ z4s^sykbAiON$EG7@Z37?Ok_Ct4)q+T3-qC*D%`%xm4w^A%7L%#aFBVU0F$p=xk76_ z?W@9`lPKl!Shv!4I~Ip!0cBC<5gqF$To=A0)(vsnu5OV#qfJtApDZoPI8l}EeaO{1 z9msbsVnf<3=@4^I-!rQt7V+dIv^`wPkrNznphy3edbgML#X*KARlb3IWwj04*}1Rn z>4~bzj1QXOEM=MeoVry`fkIMdp`2`$$j&G7&BJ%4Al+#E9qXt^m3wUa zX|z{~Zm)pZfu6JBoiCyodG4~%qNB>~SnmG)uYTQLC2K)4Hh}SFd+d@#>^*kRx?a!| zdynOocEm0{xax|mxp4cMi84+*eoLp$lgUt!Mb)B76d?l6x0m3>5bU`)OlfyiUGfYp zmj)2%ZpS*t4(g+$svA-_P^gX4RQo2jmJG7?i0UF#5D%`h@VC7ruks>N)c#a{RE|XL z(2UoUye5Zg#OsNpsChecl9lvUUJ`wYK88E0E_)^T&|9)yBp<%N)ywyT5X+!_&sv1c zG!N!>3}OMjg0#oZGR*Y&v8p}mbtFXB71Vxq9u>DazTo^F>@(j|_S#=4K60WXcGf!4 zz7sXKQZ)_@BC^_^Vf~;xbnkxDgXib{lE*GS@+2fE`&m`{FL@P2j_#RlyTT${$a+O< zzSQ>gw2gPg(KyWPD4cl!`M>pQ(yD1%XnPJJ-SWUnBMf(Y_v%2li81@^w zQ^>(eb-iWO<#2~Ma8Y3$RXqwqBsE7kb-5*m|XEyM)#V7P?$^EE&CWpo7D2u?g?^wT?%$Rz#I( zlHU%nA;YcMXPrNU2!^+G6hrFnANZZ+ZA_?$4VaKt|B#76ewMxQ=lm>Xkjc8w|4ypm zBUk}5*e}u7RV3$)xg2R2CtmP5grd=d>fLW@b#z59^qFsO-Din=k{Ri*hS#N;)LrJP zc0z}?FHV*7=!qwLzt$et4gG!BfEU}TdsH|0!kd&hu= z#C$}rWzkUhxp(N zEkhIK<+V#TfvQsBjpx5YA>?;e&T05Tx`?sG4S2iQ3Ff8M>HDtPfebu*kJ4U@9g!{i z8pa}m=(QR{-rhXFL4hb8f+*d4OwAlU2hiN^5==C_4;rRxTvy2Hnw(em8Wl#s84f>i zC)fcBH2X3JiTSb1yN9U1xjv7x!Y_s&$G7In#lpuq)0WYO5Zbq|HB&o7u7PTWoXCG0 z>jBxM!m)09S5@?uii+s0vYBP&(dkXuTyvr_nP^UAQng5O8C;o~HD`8odQyY~hHja+ zsR~Q4)=kT+YtuEGmL^*7&Zb*7)n(ExHR)}eS~BTmrn;#q)tubKtm&S3gKJ_uc57-! zBAyimryoM9!0D4~ZcQbd6LnE6-$a4kr?mm=wrD=rDa7hAsSvKBeTGvgHLXx>16H_B zJe97=)r+Y8gCuIAFy4~Q2>T>yBx;d|{omgQ?G(mqs#_DnK1GpR7_V=vP73=+l!cK> zH9~fpsS>EcGL70lCL;pXTs_Jm>=&3GRv6DVwbVCPH$mkL&5aTv=QJett;<%%g#F@6 zp!+y1urqi+vwL^dvRhWHzT?g{1aY;DGRLbMlfoIg9df5JUelPay<0fW$P-8x%5}0c zinJ({3qfb}DFTtvXYjZ0FYr2tUq8NBt*qwk_LhVwuv}A_vWALEoahpCxWdLnb28f? zoN+9KD3oYt{2tIwxRCD&6u5=bm2%-sWcFcUvrW;0&LkUFio(w1d+}EeXwDRpqA<~z zXiA`}ov9y0+6j-NwZDecn_SBhZTe3O^GIN&%+8!Rrs<9KdbA0U`u6dSYgt3rzl0(Sm8Yo+nr9NMpy&b zGInQcBqc1Fv$YyokvW)NtIZhI*w$cHFiqbq&7Yxp*(%mxWl;=ayI6zi2J8>LfvKU? zvO62$EB0})JE3F8lHo!{c0H@BKf3)8sUZb$R%*z+u(^U0=_AE)Nt&+%%h13G4E9RhJ`nBBLbiMOx)hX02qGLZL=pd#s z8%KoT&w_x18;u{P{nT!wRn01RH-4+6J1^56xesYoD;-gaA)yKFSnYYF!oPYC6zon{ zwy~ClBaOnU)h$ft>XdUVJU2D1+#|^8XELX%KB}Q}3NA|15R=JHR7}WLm0`nB8L8V; zsxGp%2AOQvtv})w7+eB$1f$dzVeL}<%^W*6!q`aU?Cqmk4?Kk4J74C$U+4aS&Rs?M z1G^RZD%GOA{-_tT9A{eeZmzHn zFqaAFKL0Co$-1g$4(METhde+&DyI~K!hugh1C<|1=dvxiY`L&Lu3Br8<_PN(im{H( z@G!lw)<)jvksR;HLpl9DW$O@C9CV#Wr5~?qKMv*laVX%&A??SALD1R`EtCBbm3YYcG2}i~J(LKPT$f}mVuIg3C#y3=|j)VI* zbsaO~V>)9LQ*V)5-y`c@M7bPwyFRP4{$5^-N)W0#!ikD?Liv$p6zf>xUb%Jh%P@0` zEWrhB=A;+Q6sx*%=*TJU2rQ^QdF#v@MtKsw9uc*^(&BE>Hxn;WLic+Cw{{}VJN zte58^COM0=y56ttyqss}Wo?IUob`3(S%7sR1?^)}`?%J=;Ay9t>k`{4gmr;RbVM?4 zFbp?>aRIS-Nw+ksNAB-iuTMqfa0}S#D#omuWqaMTiV0OZlgc(UfyZeV4RfA=+@f;m z87sX)9ZF3(WKEKqpN6Iy(bHOUlBX%5-T{s^UBY_+SKp(@G<>=TA5nzBm<=b!ppD8U z+U~^qVN_$_=*OBX9a#$u2TY~_spY%GbQuq43MO{Vl0 z2TJT6FIl%q<|m-73h_mweVeB}I)zYHIAlILg*f(7?wBo*Ez^dxW41uHT&G&bFgW9x z1U`T(G_O(gZ9?QeflS7W30&I<`{&G3SOcv|ZfQ}0JJKC!4GNWD%3}`^1@63}`9;f0 zu?CnZii#FOj$yXcDsYR6D6t?Z>~COm5Kf_D0IAW(u}F9@cM4#m0O)I3%Sx%(Z=4{m zs1!I46^5|^Do+~gPh*&N54I)`S4zc&QmN!R`DY*nv^A&0xf{c|yIR(9@1FIjqcDG`x3?T61_%rhL(o5k;uxK^Q$pUWY0l zWpIVQ*BUumdtJD!l-Z5ZUhCx8Yia88Mz!A>IxYy!b7nld;RL@r77br8oL=FF{)-1+ zb^Um&Z6?12p)KwMWm#_y=#RIBh!Xf&oVC`@o57X())}eh+QwX6!e=z5YGx#BYn6EB z4Kw66fq{8&b;63-uMn--x>UNXf!=_uOVoqLhed8bV4X>43ZbGNvME8y8b zmAf+_n4{Gnh9j^4n@rS)HdO9yYj8XLT2yZ^_l|7202UcjdW*$h#qz%(;~tlbwevlCU#5@;d*zorm4X>ob#X zCw^Z_q9m+rD|8>;1$;T!jB#wf+;x0~D*3LoZN#YDIFf5qxkSV|8S^R;Sggt!f|rV^SUk&w(t1-~B;3e6T;DoFHZj z#Rn4k5=ob@pWfZ311flH*Ios5FWdgWH; ze*wbD^D{RemyI|PSO@;Ndbwe+u?Gs; z9J`B18YONTa7XlNp%?Bu9*!}y2DrWWFmP&baLv*+5d|v?`Bx!l+!#6Pa)&M-F%JXt zn?Hbg0+>oY?GD;WYCH7#C19HLWa|Uee z*ncYlQLt`@{Hu_2o@?Zck9y?{Z8QRN9cFklgP63R$44Mv|9j-0hx{Xu)0W9&ov;60 z$hnZpi$8m%1W@M^1ry?T~#^PyCFo zw!Ip1)@wv;#e1Hl&Klk-L@FaaBDg)QsPBMUAbGRUeu~-x?-lh8P|C_8}10(w7gS z9;Si{iH8jJF;E;wBj6&^@GBDB{hxqeNbJPBLh>e~yo`?`vEEQQLoGqcmBu56`X(r) z!SO&*-9~!F@W!JKCdk|>Kq*|t@a{FdPZ{b7BYnm2Y}A^va=W1tpp?BY8s2{z>NP_Z zqv#5ECn#lwTL6l>XsAJ`XN8LzY5^#P<5F2s_Z#U!!~2@yJ!_~_hAKoGDcuJR^^~FB zFjN_OiSl59q23Ql>9P+h>Enj?OG8znr4{Z2hWfst#$W}Yr0WdzIYa%#Q2z%?7kL!CF2iylwQ5i!kB92pcZYp90}^@O2bG?a^;qBP14wa!r6 z4Ao_*V}?3wsBnR2WtyQ@8mh%m`waC3L!B^Gx1mbVdnU-Tl^bfMp~~cW8pL>hcLf{T za(-7tu4ZM3-iEFLi&YCVk~H-rs_+b43f z*SGULFx;3W2T(jO;>RsgAM+|W+{^SiJ>YPB@j1T(hr5M}gHp&{KyCpBIKXf-&v4`x z9Y-CX!|Su$Tr(WG<;5K`#eoSCMon<%%fqN0Ebd(Sm|?(hTgu09*NNLrK8Mx8Z6sf7 z0<^eO3)CKS8vSqG` z3Ea;`BLah=dgI)Vp{2n=uM#$-D9s?iuU88CfSa0UUOImhOMCIcpl_tmi78iNJ` zhBtCG18MK+&@5CnFmpV1-rtXF3@Q(pfq617@rcG?NC&14RS@+=@^8GUx)Dd(nkV}g zPF5KS>XDrKOd_Gv)JGo#rWRM&1DM+0b|^cfbJtq>YPhfUACQ;TC2Dd>+!C)(dvtY8 z4Nr2k1jonCNo>C9WMc{!)-{a_^+Mgip15Pj4pEk9z>yZu`{Tj$VU9C-C%R+=PGp%3 ztY8hALrt$s``5m#@0~8ukU7!;?Vqdo2^xL7yZUDHy4TfvZ>KgM+;4sRtM>0ujRx=U z_v0=So+}}qBkSD@e1qa6j$~ZcG8ozFKBs>hHsQAm@ z-|u}dzb^(7uI+xK^W~VanD^~_-OK+G_}}JW5qKo-8u#+MFkp;lXUD_QK;nAc%YOy@ zCxDx+aV)RI^}3f2_EnF>UE^N}_dTPHO1FP+ORMaD9=G8D+C7d}+k4wR&+O7!%yN`IGNy zd7Y+K{5e;(hB7Ab_*b=X;PlR3)p{SY^sZ`=HdnPyg7&X!QRH9MqRhXl#Z=x^Ei!^v zwV2Moszr0Ws&xhu@2b{MK?kp2Jxb5yv79rCwD7K99Y%uJuXf^ZpJ(ynT;1jC_g}y2 zi|bco(L4R?S9Hu=ziI>Rs4G`;naU!d*C?di6KwGB~ozJC_-de_&PYpV06msAL=pG0^Azo>LpI z<3T|%4sEd)?|0_Z#vdY3?SJ&a&4{F1c@&%U4v%H5&~m(OT#IxHJ{58$U!BzC^V{6E zT~A8#p4W{bA%!(QM~;~D=Mm~h`4(F>enAY<_WG}ZB%UUCpi0{xWJME@4hSRi&SxPS5{#(h0~9p{Uujt*k3mL9V244?HAge=M{dMt8(*NcXQb^A8mELZMmjBtlM_ED{XAqYPQ?l@9+HoGr;cX{O6qC zh{m^2KF-H-yF9^1^6BzZZjJOtfn0B}i)E--z?aIUVx)XY#K~3>&sWL=VkEDS?+I(( z6A2K!h;JgkRrvP%*je=Sak=9aB}c*0V{TfFhzb2GCvNV9WVmI*)I*Yo97El0eTFNcH_NB%5daR{<| zXNoKjNfxv6r7y%P#^%dkh7>1vLSS2u)_pfT-e)ScvnDO8`>(?xzAsk(JtVy(0RsEd zwtxXc%`*tn*XgFFvqT(i5L51v zd&6?XjXe2wm{nZNlV63^rTFp`^o7%{txKBz2zR#i*t=un5tW%)`4O_gG(yanD1T`x z5H@IWub%jp?BwjBW2~yn@))z)1JWT$vr7AUbkoarkIHS=NV-;0f{< z;WM1?W7e8gh#*@9$3Cc-NU$LNc0z_cknQy&q{Omoo<6+z4&jpuB< zJwUo129ja?<-6t7hzWe1^h9J$UV1l%b(%L9^%k7objbkt8HfStyQmF2j{>X@RCy65 ze;=_@d^AB$9GoGZogkMFUL$5tkY@+4PU=Bg0uw%Nd!&~&UN!vwaJ(!rXQCX|np1h2 z+-Xh`W#i=$a|u5oZ=&Dk^i=V0 zcgfk&zZE@q%E2*n26x#WCV}}eHOQp)!A9POM06YXK56&-G7CZq8@VAJCV4{$j@fG=4)PZ141Ufe=l!@-nd${d$A%?*1J)OsEGAckW)u8Cd*?iN$YO{6~_M7Tom2U*vgyo#rO&G za{OVDc3b{S!s@WtJg)->76rpvt@hE+|E^Kf&dC$*!?FcGi;u{& zbC!xtM`g;~JZsi5zaJ|PWAh`US43)R09fi-;W1e|HzTA5>}2`dnW^&5dre}+F?nik zig@Cf{B*7@LEiKU>^-ReI*z#GNPPujbc^O($i_f~8{d>vG+K zV&Q&Wo?0+Qw7xF?v|x(pdQ*-m%@$iu%lk|37muBmCrX!!v&P1^HE3hB$gbMl2j7KDZ$B7G|etZ~OhIAjW1yMwdlIYSRWY+TvI% z5-#y=`RKxh;>_>lrG+mXU#ywJdQk}-qwPrD?|55IXs7m2h8S0k(BeNn*Al=stEPHT z;01dkF2LWCX=g)ac~g96&XheIhbms-7`bTC%oVF#-kQdW6>e99m#wte*&|diq}<@z z=yZ75pv#ZT){2$BN_Z9GsP}r9_<-8zRMvW#`0!n{wGc-|d4rRQOT;pTII7*{tC;u$ z@yzJC+~8fNUNqEd$~_g0)l7Uu1PfFft6_|ZE7VU6ad_9(SJ#%Wh00ZeOJw_1rwpu?zoQrV6!%|9++l2k!qu;$wHiN=UOMir;T2RzNRKl z8$)P56Z|3{hG@d=aCx1ca&Mi7X=A5?7OJ)48Aax=*ZZ+?u6@gaJkKCXnN5$?1%y1v%Vm#%wRds6_kJlx$7>je) zJ6sJ8=Q<~hjwkX1I0sSs@^(9nT9nc8j}ufIvw&`hi8d{u>?Pei(xo%hOr^UisGFzj z`V3_yN6PW;a!0+#g<$bQI>_Cn^g4rjg#&CBDvwF6-qBD~x8BiE=kYqL7@zhXbXO?d zZ-cti4BeQ3)XaLH8i6~Y&-lUxD6JNyI2*O54|Ji5ZX1iKb*@)A#TOG(w7H3*hkS|d zN)3g4DYf|`OdvJFUC4{&kWXMk9j>|xCcc@E9?QUuNH$d8_fLfxsO}#i)K{3>Rbf5^ ztUzH>J6M?K(e5iuV)Yd!@%jprdIJiR2>lC_`U4A-;HWVFD-o;M6-jLtsK|Fo5P0qQ4e!R|V|*h%Rux%*De0?7@+DZ2>&cdx?w497 zG5Xaa!S}DlAJC^-q--~1sYNYPvwtmaMqe}2UZjmtXmF@N%=_nBoCQJQa3e3BRj$f% zFP4G{2S5we4&xa~x?N~QsfThnR67eobb++HEWT?>^s9iVe}HI|k|*@?O0TP~mT9@s zNZ3#<0neBbc=Usfb*y!+MPb%9y4@&jQl(s(ieKLTbI8W&**S#TD9ku4#N0Q8!iL(i zR4^Vz!4_=|7G!BO>8mUyVmw@^^f)m(V@2f&6w}n9b~a7nzfbsTY2*nyB1@pD;0c5S z{GpSnmq=Qu3>FJOT8(`Hyy3)I3A_k}N2iwrrJ@*cSE;D=*3q!WRnK?^X{?3@E}dK%#!ME7BciZ|?z;5u9;GaN;T&AaR<| zgV$5{Fypq6L^~@{FcU)v1|(gMS=4sM3w7^mER~HO4{aoTvQAMzm38$%nKd6Mk13Ro z38lej-2k%-vAtO2hOCUuR5sTpdJ+NGW3_kqx@lnxW~`dsy#PS=Lv;(ncc-tmgnY9efLx zsCA5Q*6Ay09a-uF+Au_)77bT5qO_yYYG;!Ot$n9qeurUR&-We1K*{MK zvO3VDJ(_43so{nLNq>Y?uEUX+l_OsojvN{2$dP`I95EcR{s66qp%t`$Y=~~(P4Y+oEOk4g&hwb1FGzrR^V*C+TcJu}?SW+;#UXlPvu zq--_gm-OLlWcadSn3lLYhYQ?KJ_#!4VC|;`?vsErc0KfHPoya&;lPvv>azfpkFXg3 zGA+f1y0x|`Fk`bzKZp4Z}>l$f;iBhESG<}2f@%C;5GO9mhR1gv< zF$PL9(k525=@e@e9uu}bAW@^33t zzgDWp4b{}3YJD9pEVW+bNUAb}KwF=JJiQJ~RqJR*z@t>PkY*a)nq;+-W^uiAs;p`0 zb~X-L$?kI6BgZNR_OO+p(O6&z;mcE2Y9UK+S$O+R!=t=_N7hHc8$~#{AuwKGc;&_$ z8@EfHi*QL%J{*Q1ZJNA2YX~CZg3)Q5nsg!x)wUpLX+G%ahcm`!b0U2f)LI46bW9F$ z^yJWJPUk2weFj_(wX>HgCt@?~>O~E2->2*`UKTKyekZ|{8KKcIUYEWB`0i7x*-+KD z$#)FZ`vR&;R=>X@l^sfaGsGQ)*d7~6BO|&oFzZv`(Wx#O^IKsA$4e1LcnScQ8G)WDc^!B^H;}!_>%iM&^y-so z8E|-b6)8df>K5?ciZ%NTr=L*P@4trhA*N+cf$t!hS95=PJB(BvbXV$hY}EnzPlk=4&Dtn68?a_04_AlW9UIW^f@9@naxzP>3^-wjL?m9#l(Z9d}>x@=Vx zPI$@(6mb+Fjdl$STLoj^K_i;Q7-`ZiI@71D=f^j^DoS$MAd_wIq>z$0f$RG4Y(6zf zCyY!giHqT}q4vZ*(~~$}7N&#@5KV<Y{= z&|Q;Vt4!aGZ@geyj(_V`iHR0nHnhg{{1N$f<8s%kHdCA_efjdc<QC<{SJM^@_N$oA5kT)g1Gg$xmA zgLnt+vGUlC2W9lmtSEXJj@bl#1fnrtPHT!cPlF(4541$lmTr+7c23}ad1&XFVRS#w z0;lhjtzJ_zwpNaB$rM}ScR9PUB_nfo0cTLT!ue6i{FxEc;1jtKba{y zEJ_|fUqCG_QT6aMrnOkGB=oFpIht&3)kfqb1xDm>IMiF*EkR0PjL>+!b@hneAcNd| z6XDo`qszc>bR@|+ZMXA#gA5Y=8lv^X0-{8TL_S9+2PgqMtyZ~dSFxpc_&+j^Cd*5^ zR!4QE5`*G5hCmSOczIFUWqpfD^rXsP$rjO@ios<@1_g1TVIhWKglySu9Z^3nfKC`o z;mFFI043na$~5`j?qboEqvD1i+f%E3IXDmKgC)hsq1by*f66aGvFG=v908?u0Huqx z22lPRlr$XA2Zr%zE>UQtpCdC6Ol&imdwvln@}uOhpT&$$lGpT~U&#zP;w_eJx2U(tUHdb{Nt-;eKiAR~j0oges|kO%v&ot#^8k7D(%XTuV+c8e}RPq9&WHIM5;zC&_OQWc1@ZD$CvYn-3dh zlcQcP7T0XD{^eY8xj-Ixd9{e1Bx4UQ8*x797-~*QM+XfPejApF!b!6AV6I@30pP*vB@X?b(1)1lM$~R7x^}M>Xi)9l`6k@rA3@9ke)-iq7?x>lpzk<Bn}qr-*q_p{{i+S0Qmp_ delta 8604 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 z zom@l9H-3zFTtD9QfjVDsY|H&YN!w$pk3M*#4gW0o*4Aq>NMp8r6>7!~B1Jx4l;MoS z3z66tp}>^*J%$~F^?+rN@c3K;<+4RVJn;DllyZ2GCr3eMK^rm_) z6itF^7XG6aaY%1?)ln4Qtm2dU$>{x~GD2bVgVx>vJd9^Hih z;yi+j9#$52}$gWKK z#g;faxXX>v(vsc7l{;4l3P1aIS6$yVIt&BX#3ESiEDlq`7CUn({gEn_JVwVfc?|P8 z5`TnrmLAQST?zD)M<$2bO2fL0_7M1P?C*W?c@&iGQItcVT#TZ0vDSqCTE7J)5TS&< z;`5T}$NNYzzTt^ucm7~koa#&@hDGs%$#@8`6o-2tAY}rD!qQVX#z_Ve@=tH#X`Yi z)zDI34{E?gjZc-T7hLqCrwUcKi(YwZo%69M;5YE@U~vV_f4WeWxah8@zjS6sfIYa3 zwF1WFqK$h?)fpH48-9{2sAq4t>T=QB&lD3`?t5P#7$iBby`cqN-R8*$B z&)cBi=U;xF;V$~?ft6}$1>JUV@%5Pz!zfZMy);5${0=PnTPo=M!BSO&`8iamcDrcYp~qC4 zi_RWervyU$lcVZE7sVbfRmouy891lMC7BRgHRq;sA6 Le8Q7&cP9T6d+z~D diff --git a/include/list.h b/include/list.h index 3b69948..fb4c9bf 100644 --- a/include/list.h +++ b/include/list.h @@ -52,6 +52,7 @@ typedef int (*_l_comparator)(const list_t*, int,int); /** Takes (list), (i1), typedef void (*_l_action)(const list_t*, int); /** Takes (list), (index) **/ /* Functions */ + #ifdef __cplusplus extern "C" { #endif @@ -59,7 +60,7 @@ extern "C" { list_t* l_create(size_t type,int blocksize); /** Allocates new list_t aligned to size (e.g. "sizeof(int)"), and first block with (use l_create_d(size_t) to use default blocksize) **/ list_t* l_create_from(void* from, int items, size_t type, int bs); /** Allocates new list_t and copies elements from into it **/ void l_destroy(list_t *t); /** Frees all memory alocated to and then frees **/ -void l_add(list_t *t, const void* o); /** Adds new element at end of array with copy of data at , then updates ->length pointer **/ +int l_add(list_t *t, const void* o); /** Adds new element at end of array with copy of data at , then updates ->length pointer and returns index of new element **/ void* l_get(const list_t *t, int index); /** Returns pointer to element at **/ void l_nullify(list_t *t, int index); /** Writes over element at with 0s (bytes) **/ void l_copy(const list_t* src,int so,list_t* de, int o,int len); /** Copies elements from (offset by ) to (offset by ) **/ @@ -74,7 +75,11 @@ void l_swap(list_t *t, int index1, int index2); /** Swap elements at with algorithm using comparator **/ list_t* l_clone(const list_t *t); /** Creates new list from **/ list_t* l_clone_if(const list_t *t, _l_predicate f); /** Creates new list from with all elements that satisfy **/ - +int l_count(const list_t *t, _l_predicate f); /** Count all elements that satisfy , or all if is NULL **/ +void* l_push(list_t *t, const void* o); /** Adds new element at end of , updates ->length, and returns pointer to element **/ +int l_pop(list_t *t, void* pop_into); /** Removes last element after copying it into (if not NULL), then updates ->length and returns new length. returns -1 if ->length is 0 **/ +void* l_pop_n(list_t *t); /** Copies last element into newly malloc'd memory and calls l_pop, returns pointer to new memory. returns NULL if ->length is 0 **/ + l_iterator li_create(list_t *list); /** Creates iterator from and initialises at index 0 **/ int li_next(l_iterator *it); /** Updates current element and increments pointer in and returns non-zero if index is in bounds **/ void* li_get(l_iterator *i); /** Updates and returns current element of iterator, or NULL if not in bounds **/ diff --git a/obj/list.o b/obj/list.o index 872fc3af8ce7e892d84e411db5a5d37f90623d60..c566ac91f485586537b54f4a75f6e607af75aab2 100644 GIT binary patch literal 13395 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 Ds^L!| literal 12163 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 diff --git a/obj/sorting.o b/obj/sorting.o index 5ac579b740dd7babbb288ec0f261f81d2e8da305..36eed60f896ae48a6f14695c26044592a8bfd968 100644 GIT binary patch delta 633 zcmYLFO=}ZT6g}_dy~!jE`4A(1q=Kd;Sf~_4a4jm>b|G|I7-!PSWNB7RnXKz9X2+_>=GRB+(lcg{Wc+(+J< zn*PMgRtqh$pRE_}PhA0MXJit{4~&U)V*~kdMp$XbbH_g9CzfpO^ddKa{LET~SQwG^ zg;||!eK+wYJ;<+II8D|`ZyfGH9x^|x9Wxm9Vs}86Z#=FAOTFJ9N#41;c^mTkAz>9c zUNr1JfKnHp@oBOD$UwCiL+`l8g<5=0M3H+;Z}ByyoWjmCqn4*<=99p{kj<}_GqNUa-ml;YYa=OF8$W2@` zOrWl<&-Hth7iKsGgoG+9oOpa?maXWE(<9}Kce-vW7~v@iYwg_VjK delta 681 zcmYLH&ubGw6#iy1lkCQjAJVE|tF*C%9twqm;6?PHpzY0*5Lh?KCfRm>vDso3A)ptp z%i=-sCgMd;Id}=Z33`v(T5tXV>OlnY;Coxag?aOR@0<6&*~g^wPv^}oQ3iiEQ?n_) zr)!~U7J#V)ey1;*;%)lArJogn<@9G$PYGPi7R9D`p1Go>-;{tWlP97jq%LIpvc2Am z!>AMPwWBy3#J2Cd!JzHAqa^n@E%FU=C;z#|! z_NnBE+by7|jy6e>*KcfHgZ%Q9u=1>q7j}1`)Y+GOwZPd+pcWWI_w2-mT6|4JQS}4b zOYbO5X&KXON3D#{)AY3G1cPJ5zb0M%sKIL@p?U0{<6B+rZ{ zq*e}z7ZrCbs!J5h45j5+-O!Kh*iOP2YU5U}-==tChLb={sItL<+gE1Ul0G;7LA+|m zF@&*3P^PGQPCp^ahh(a%u{#+4=SG!1NWPq(uGD;p^6}AL&4VB-F7s;C@gE+d6w!tM zP(d9H%MCk_-`E$TG1=Fva`hGAQ?%wlZ;AetZj8GW6|Ex16zh5JVb(By33FnakHufJ CWRsNu diff --git a/src/list.c b/src/list.c index f8abeaf..a103292 100644 --- a/src/list.c +++ b/src/list.c @@ -2,6 +2,7 @@ #include #include #include +#include #include @@ -114,7 +115,7 @@ static l_block* _l_last_block(l_block* b0) return b0; }*/ /** currently unused **/ -void l_add(list_t *t,const void* o) +int l_add(list_t *t,const void* o) { int real_i = t->length%t->blocksize; int block_skip = t->length/t->blocksize; @@ -129,6 +130,7 @@ void l_add(list_t *t,const void* o) wbl = _l_block_skip(t->block0, block_skip); memcpy(_l_at(wbl, t->type, real_i), o, t->type); t->length+=1; + return t->length-1; } void l_nullify(list_t *t, int index) @@ -266,6 +268,54 @@ list_t* l_clone_if(const list_t *t , _l_predicate f) return n; } +int l_count(const list_t *t, _l_predicate f) +{ + register int i=0; + int r=0; + if(f==NULL) return t->length; + else + for(;ilength;i++) + r += !!f(t,i); + return r; +} + +void *l_push(list_t *t, const void* data) +{ + return l_get(t, l_add(t,data)); +} + +int l_pop(list_t *t, void* pop_into) +{ + if(t->length>0) { + int real_i = (t->length-1)%t->blocksize; + int block_skip = (t->length-1)/t->blocksize; + l_block *wbl= _l_block_skip(t->block0, block_skip); + + if(pop_into!=NULL) + memcpy(pop_into, _l_at(wbl, t->type, real_i), t->type); + + if(real_i==0 && block_skip>0) + { + l_block *last = _l_block_skip(t->block0, block_skip-1); + free(wbl); + last->next = NULL; + } + + t->length-=1; + + return t->length; + } else return -1; +} + +void* l_pop_n(list_t *t) +{ + if(t->length>0) { + void* new = malloc(t->type); + l_pop(t, new); + return new; + } else return NULL; +} + /* Iterator stuff */ int li_next(l_iterator *it) diff --git a/src/test/main.c b/src/test/main.c index ac19838..f2cedb8 100644 --- a/src/test/main.c +++ b/src/test/main.c @@ -9,7 +9,7 @@ void p_show_sorted(const list_t *list); int main() { list_t *list; - int size=100; + int size=10; int i; l_iterator iter; @@ -24,6 +24,7 @@ int main() p_show_sorted(list); + /* Create iterator */ iter = li_create(list);