From c1eef852db508043a3777bd96459c6fd1e493ad6 Mon Sep 17 00:00:00 2001 From: MAO Dongyang Date: Mon, 20 Mar 2023 18:08:09 +0100 Subject: [PATCH] Tous Fini please use "gcc Block*" to compile the code --- TP3/List/BlockList.c | 14 ++++++++++++++ TP3/List/BlockList.h | 4 +++- TP3/List/BlockMain.c | 5 +++++ TP3/List/a.out | Bin 50472 -> 50536 bytes 4 files changed, 22 insertions(+), 1 deletion(-) diff --git a/TP3/List/BlockList.c b/TP3/List/BlockList.c index 1311e55..009da3f 100644 --- a/TP3/List/BlockList.c +++ b/TP3/List/BlockList.c @@ -63,6 +63,10 @@ void DeleteList(SList *list) SCell *GetCellFromBlock(SList *list) { SCell *pcell; + if ((pcell = GetCellFromRecycle(list))) + { + return pcell; + } while (!(pcell = _GetCellFromBlock(list->block))) { AddBlock(list->block); @@ -97,6 +101,16 @@ SCell *_GetCellFromBlock(SBlock *bList) return NULL; } +SCell *GetCellFromRecycle(SList *list) +{ + SCell *pcell = list->recycle; + if (pcell != NULL) + { + list->recycle = pcell->next; + } + return pcell; +} + SCell *AddElementBegin(SList *list, int data) { SCell *cell = GetCellFromBlock(list); diff --git a/TP3/List/BlockList.h b/TP3/List/BlockList.h index aa4fd0d..cec0716 100644 --- a/TP3/List/BlockList.h +++ b/TP3/List/BlockList.h @@ -16,7 +16,9 @@ SCell *AddElementEnd(SList *list, Data elem); SCell *AddElementAfter(SList *list, SCell *cell, Data elem); void DeleteCell(SList *list, SCell *cell); void PrintRecycleList(SList *list); -SCell* RecycleCell(SCell *, SCell *cell); +SCell *RecycleCell(SCell *head, SCell *cell); +SCell *GetCellFromBlock(SList *list); +SCell *GetCellFromRecycle(SList *list); SCell *GetFirstElement(SList *list); SCell *GetLastElement(SList *list); diff --git a/TP3/List/BlockMain.c b/TP3/List/BlockMain.c index ee5cccd..8979139 100644 --- a/TP3/List/BlockMain.c +++ b/TP3/List/BlockMain.c @@ -32,6 +32,11 @@ int main() PrintBlockList(list); PrintRecycleList(list); + AddElementEnd(list, 10); + PrintList(list); + PrintBlockList(list); + PrintRecycleList(list); + printf("\n"); // printf("Add 5, 3, 1\n"); diff --git a/TP3/List/a.out b/TP3/List/a.out index 92acb565c396a29e4facede85dbb52b3f8ed973d..bee611adb6e2010269a469d7e357bf0d613a1f10 100755 GIT binary patch delta 1583 zcmZ9MZERCj7{{M;Z>L?AwrIjShqHqOFeDSjm5%kzVaE+jtQs&zajoOd&9!^!3KWyt zO9nBenHG=E7!}dPK-6qA!^9agDqS{fT_fnHYVm0HPkqq&$;K^k(qDYMT?h2>FTS zEPZ;7ZrJ{VbZKdpbOcEKZW&+(Dt4JFzI{!9;g%vz<50D;^b`IHpL&bV`PN#$<&dVA zd=1uf9G;*{zV+5ThgQ1LzkcI$9Aq4LfgvlayINvPobU&^{4*W(w-6hp{#VEux*^bP zyI5mefE${ndjicpGbTRHN@4R;*M#BtfBa$IhEnD5zhb)8G#)pNPch?!{|XAYut^;5 zE%Kf1qaOzD*?RdZ>eu&lvzfq#336Xy4RlOU2-{)HRSCONHZVLdAOCm%3xu=>utxnqJYSrASgeWIE4D zSVfw>Fu}UR*p=B+nLQQKxCut(M%iuM}M+jrb{|pQ4zJVWOd_VUZjwf$0 funU`A=Z)Czz_!A4ZXxe5Plq_&G&8XP=QQH((tQMs8BmFQ*chzbTUE{)vFKS~QwV0+gjaqd> zMs{6kyXxqzx~`z}vWxhj(IPCuvT<8f1htCb2R8vPAFM*H=gz$m>@fG<{LcTJ zbI+OFnM}8Gp<6KqC#h}#0stiiIN_zbue>N!NCkVVESvTRDin=Vx$-~2bX=1C06W+k zTXDe@q#_(PcF;b~^w6RRHIoBsBLkGe$)a*|H-Pf}wx||? zlBL@AmN2**!&_mA0(u81U_{yBWNG|52}D}LQMgEd)SCA-hqPr{C4-LlwAQ$WdmpE(g9167qCaSzmdNQW4Mem(+?A6_6)-z_@-R-Ry*Oq0FP+;G zo!GFokyYYf)LQQ58nfsjCP>84+1QU$YR`0>&0W~SN-g?ztDwPY1L;RU{z++=NlpCdH#CuGV3i!HW3H9+v(L8WxiWrAvC iaifS=%@}SN!z;&d5ylkb;9tpUIKD7T_xCV;;MHf7z*@5a