From 573f35d2463317d80bd47d5a39d9184d29965f62 Mon Sep 17 00:00:00 2001 From: Mylloon Date: Sat, 19 Nov 2022 15:50:43 +0100 Subject: [PATCH] * impl list copy * select stream when printing list --- includes/liste.h | 3 +++ src/liste.c | 16 +++++++++++++++- 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/includes/liste.h b/includes/liste.h index 64f120a..7b3dad0 100644 --- a/includes/liste.h +++ b/includes/liste.h @@ -31,6 +31,9 @@ void supprime_liste(Element *element_actuel, Jeton *jeton); /* Affiche la liste */ void affiche_liste(Element *element); +/* Renvoie une copie de la liste */ +Liste *copie_liste(Liste *liste); + /* Libère la liste en mémoire */ void free_liste(Liste *liste); diff --git a/src/liste.c b/src/liste.c index 79a40af..7f059b9 100644 --- a/src/liste.c +++ b/src/liste.c @@ -43,10 +43,24 @@ void supprime_liste(Element *act, Jeton *data) { void affiche_liste(Element *element) { if (element) { affiche_liste(element->suivant); - printf("%c%d ", element->jeton->pos_j + 'A', element->jeton->pos_i + 1); + affiche_jeton(stdout, element->jeton); + printf(" "); } } +Liste *copie_liste(Liste *liste) { + Liste *res = nouvelle_liste(); + + Element *element = liste->premier; + while (element) { + ajoute_liste(res, element); + + element = element->suivant; + } + + return res; +} + void free_liste(Liste *liste) { Element *actuel = liste->premier;