From 167a0300de7466b7e1fc3dd95e59c7b5d04cb104 Mon Sep 17 00:00:00 2001 From: jaob99 <32195842+jaob99@users.noreply.github.com> Date: Mon, 2 Oct 2017 06:34:54 +0100 Subject: [PATCH] more funcrtions + macros added l_reverse(), l_swap_e(void*,int,int), l_create_t, l_create_td --- build/liblist.a | Bin 16732 -> 17338 bytes build/test.exe | Bin 49370 -> 49939 bytes include/list.h | 5 ++++- obj/list.o | Bin 13395 -> 13972 bytes obj/sorting.o | Bin 2705 -> 2705 bytes src/list.c | 24 +++++++++++++++++++++--- 6 files changed, 25 insertions(+), 4 deletions(-) diff --git a/build/liblist.a b/build/liblist.a index ab5e1ff360c8c23e151c15e32a868c8f1cb1fdc0..24a3f890764477f4df56a691dc8e69a3d0888f52 100644 GIT binary patch delta 5594 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 diff --git a/build/test.exe b/build/test.exe index 8c9fafca6f9fd9603e03ac4b63bcf4ab089b1467..12d2f78646dc3f1e846ec5b68eef12fda65c4416 100644 GIT binary patch delta 8705 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 HuLb=Z`+wrN delta 8271 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 C-$Zu+ diff --git a/include/list.h b/include/list.h index fb4c9bf..09ee453 100644 --- a/include/list.h +++ b/include/list.h @@ -10,6 +10,8 @@ /* Functional Macros */ #define l_create_d(type) l_create(type, L_DEFAULT_BLOCKSIZE) +#define l_create_t(type, bs) l_create(sizeof(type), bs) +#define l_create_td(type) l_create_d(sizeof(type)) #define l_create_from_d(from, length, type) l_create_from(from,length, type, L_DEFAULT_BLOCKSIZE) #define l_get_v(list,index, type) *(type*)l_get(list,index) @@ -72,6 +74,7 @@ void l_nullify_if(list_t *t, _l_predicate f); /** Nullifies elements that s void l_do(list_t *t, _l_action act); /** Calls on all elements of **/ void l_do_if(list_t *t, _l_action act, _l_predicate f); /** Calls on elements that satisfy **/ void l_swap(list_t *t, int index1, int index2); /** Swap elements at and **/ +void l_swap_e(list_t *t, void* temp, int index1, int index2); /** Swap elements, using specified memory location as temp stoarge (or NULL to alloc) **/ void l_sort(list_t *t, _l_sort_alg alg, _l_comparator comp); /** Sorts 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 **/ @@ -79,6 +82,7 @@ int l_count(const list_t *t, _l_predicate f); /** Count all elements that s 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 **/ +void l_reverse(list_t *t); /** Reverse all elements in array **/ 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 **/ @@ -86,7 +90,6 @@ void* li_get(l_iterator *i); /** Updates and returns current element o void* li_iterate(l_iterator *i); /** Updates and returns current element of iterator and increments pointer, or returns NULL if not in bounds **/ void* li_set(l_iterator *i,int index); /** Sets current index to then updates and returns current element, or NULL if index is not in bounds **/ - /* Predefined Predicates */ L_P_FUNCTION(not_null); /** Allows all non-null elements **/ diff --git a/obj/list.o b/obj/list.o index c566ac91f485586537b54f4a75f6e607af75aab2..6b4c53f837da9e86cfa3d42e4ce25b4ab0dcca01 100644 GIT binary patch delta 4989 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 delta 4466 zcmY*d3v5&86+ZvXwK0kFv>`9!B(@<52_%FhkU>Ynk`^|^W26JAT}>ViF>zwcHV|5< zr%}2^QP+l_QZ~^C?9sAm8kzyMUDah!C=;ma)=t{GiD?q+n94@mL3y>x&iViA6KcuV z-~G-x-+%t+J=X_@-y6(bBXWQ~e_R02Igwjj_>vRgq5yE$C?32MEki~mZ{nzL;k~f(2Y9=sUfwT!#$SAL zo0w-5`sIG%E4*p~%=H6otJe~N^jY!vjDgDWF2{JgIc5f~5I@#+orulmc$agmGk`x1 zGBtcYH8u8dz@e$@8Sjj1!9A`fxt{xS_{Z{%ndM9F^*VnSy-t(lc-M7`9&_si=+?^R znZ0jSKJ>`9<*Mv%u}(gpy+FJsFJ$}07xG$mUBQJrsGu@b0Z+;KIgb?<-p-IJ?L~Lw zshkJJ0qJzk7ca^s&Q_!8GZ}U6lHIw-jP6@G z8yVG}$ku2)oE#hmk-9O4V`@y8uD&P<-MFBH98eMo_C=y2ArMm(7DlxVO0C0Eo0`-) zdPYD9p`{}*#|jIE2SC^r{W^w5Rp>zs^W?kUn!ZSbBUZ zRHNH*enq~bYG(qhQ<7IK$^2^*8NTDU-iGwIon8pe7jBQU0LQ0eg8oNrZrFH}(|Dz&*ZADgaWGosBhDVZ7^3^kBmYqcZ zchJ8=EtHfmlTyWO67gHNgPxte5fA}ETfms;FKfr8(SRPFNKXQ@tFsJSkfOd|LpXY^ zs+Aw0>sLwa@J%bD)=Wla&!eq|WJW?eL9~ffX5m0(Bpg)xS9GWxE~4jRr4q=+5eZ|X z9fBaPOWaf6!9k;tzIcdsl2|2(nc|?W=t&!cEP8R6G^JlxZh8j7!9*y9vKv&^O*oSt z)!q@+9`ROlRceQAu!e>vAROEp!pKc3axF%#SCJR3$W56@9N8YhSs7B9e1Wb$rLz$qak{TVnPsR` z){eAhe371DPa+YDCxefM;z!mr??f1>#>8h~LxaK3Yn_9uT_}*@5A@8+o{r zbo0A1(cUl~8rlzA_lEJr$lN(RJJ9x+CA>80*@4F0)@{r~$3QS1N`Tm7aS@o=F91rh z6+Z-m;b<=y*YeVLyrZJN8L}K-$ysJw?J`PmlopB=rJATNUF|9qMfUcRgDXpg3m1@0 zzED|Pkzt?HY?TeN@}>oR@;8;Ga;mZ}kBW-S=dO`nS`{$zNB25hMxD!8?lKm*ez{NX z@yGD!o*8&V#sj`=d};-w0|SXrGA#pHS#u{Tyd%%C&sdpj>v}S4uW6h-({ZljtkX1U zojI}qn&n@s%WXA?hUMMra{DSoZ#tx>#%qfpTp(A}RBU?&(QfN_V8IZ{;0{2c<7oe> zbqKJ%b8nV$`3yJqKKkspwk7*Ksx>H?>u7&BTVAaxv$;_=OMX;SZfi!=D(h;??cIpJ znIqTKmf4dCkLJioZJF%=LLtX%%Tp&1(YZy-k>wGR^t)*5vepXQjE8jF02|TeKK#0Y zp2Ku(xZyH$>v7^&C~hmG3y9hk*Md8qP|6KEumhSri%84dk1cm7#}^T4>uKgbWbPA0 zx{-RU0(8VMA|26a&!F9mzKbWZPWm{acG^U4xJpo=QhefQ6hNe3!;#S; zhZvngq$A#9^e?u4##||mk&dlFq$9!^E(N1ZKFcVbF~cS1ZZo$62UrU}j7ST3Ss~4@FA1AGcu0ljFuqMA^nU}Z2b{)Cz(6L=nsqlC$U-$`u7>V z>A>;V1?g7~W(=3rRcn zFxrMlr?rdGb8J1$=n|tD_(anx%NczGkyhEExfBlnekPBzq0Iyp5X-1V6aziJhenw9)dWF$>Mpqa)@W>%$H`Ftt zqe*kg6vIP|-eB}MMh@JHI;4@&W=2${XzO7{lZ-Aia$4IHld%wKQu zshrmgjw(2Dgs4iN_Mu{%_7F3wSf(O*n!yqnsQ9&*lvRaN^_g+f6(wyR%}`?{*cg?G z(?0mf2CDw187l6ms+*4TV-yu`(@X<0RDxv~eAiiy6jfCj3jaz#h6*LkEKJh-ss5k= zvILbGUin_rp1I#50zY`%Ay0o?tX22-UV7#B#eNZ!KV0meOKXlkIBe)o|5aFoV)bQQ z{sa9FN?Wtvb;L4b#^_IfUj*c`<{|M5`Eqkb)@uS}W9w#F)pEk2CJ5i3*+GK)*%fyS#( PzQdx*Xu6q+wVxFL3pyO1 delta 127 zcmbOzI#G0k6^oSgJVpiv*1Xh;5(X9-5SxKDC9x!tfkk$52#d9^f*2D}Bqud5y(EKy zMe#IHo`JQbvLKa#MX3tNW?@ar$xqHM&a488D1)RqAR-0~EGi)5co>*+GK)*%fyS#& PzQdx*XuO$;wVxFL21*=@ diff --git a/src/list.c b/src/list.c index a103292..0ef2f23 100644 --- a/src/list.c +++ b/src/list.c @@ -232,13 +232,20 @@ void l_do(list_t *t, _l_action act) act(t, i); } +void l_swap_e(list_t *t, void* temp, int index1, int index2) +{ + if(temp==NULL) l_swap(t,index1,index2); + else { + memcpy(temp, l_get(t, index1), t->type); + memcpy(l_get(t, index1), l_get(t,index2), t->type); + memcpy(l_get(t,index2), temp, t->type); + } +} void l_swap(list_t *t, int index1, int index2) { void* temp = malloc(t->type); - memcpy(temp, l_get(t, index1), t->type); - memcpy(l_get(t, index1), l_get(t,index2), t->type); - memcpy(l_get(t,index2), temp, t->type); + l_swap_e(t, temp, index1,index2); free(temp); } @@ -316,6 +323,17 @@ void* l_pop_n(list_t *t) } else return NULL; } +void l_reverse(list_t *t) +{ + register int i=0; + void* temp = malloc(t->type); + for(;ilength/2;i++) + { + l_swap_e(t,temp, i, t->length-(1+i)); + } + free(temp); +} + /* Iterator stuff */ int li_next(l_iterator *it)