From 3f0f8bfdb820ec9e53057e6c6eeda27062166b47 Mon Sep 17 00:00:00 2001
From: =?utf8?q?J=C3=A9r=C3=B4me=20Benoit?= <jerome.benoit@piment-noir.org>
Date: Tue, 7 Mar 2017 10:22:05 +0100
Subject: [PATCH] TP5: Re-add renamed file
MIME-Version: 1.0
Content-Type: text/plain; charset=utf8
Content-Transfer-Encoding: 8bit

Signed-off-by: Jérôme Benoit <jerome.benoit@piment-noir.org>
---
 .gitignore               |   2 +-
 TP5/exo4/liste_chainee.c | 118 +++++++++++++++++++++++++++++++++++++++
 2 files changed, 119 insertions(+), 1 deletion(-)
 create mode 100644 TP5/exo4/liste_chainee.c

diff --git a/.gitignore b/.gitignore
index d3a6eb9..b751f7b 100644
--- a/.gitignore
+++ b/.gitignore
@@ -4,7 +4,7 @@
 
 # editor trash
 *.swp
-*.~
+*~
 
 .build
 
diff --git a/TP5/exo4/liste_chainee.c b/TP5/exo4/liste_chainee.c
new file mode 100644
index 0000000..c46f149
--- /dev/null
+++ b/TP5/exo4/liste_chainee.c
@@ -0,0 +1,118 @@
+/********************************************************************/
+/*   Implantation d'une liste triee d'entiers                       */
+/********************************************************************/
+#include <stdio.h>
+#include <stdlib.h>
+
+typedef int element;
+
+typedef struct cellule {
+	element valeur;
+	struct cellule *suivant;
+} Cellule, *Liste;
+
+Liste ajouter_iter(element e, Liste L)
+{
+	Cellule *pc, *p1 = L, *p2 = NULL;
+
+	pc = (Cellule *) malloc(sizeof(Cellule));
+	pc->valeur = e;
+	pc->suivant = NULL;
+
+	if (!L)			/* liste vide */
+		return pc;
+
+	while (p1 && (e >= p1->valeur)) {
+		p2 = p1;
+		p1 = p1->suivant;
+	}
+
+	if (!p2) {		/* insertion en tete */
+		pc->suivant = L;
+		L = pc;
+	} else {		/* insertion entre p2 et p1 */
+		p2->suivant = pc;
+		pc->suivant = p1;
+	}
+
+	return L;
+}
+
+int longueur_iter(Liste L)
+{
+	int longueur = 0;
+
+	if (!L)
+		return longueur;
+
+	while ( L->suivant != NULL)
+	{
+		L = L->suivant;
+		longueur++;
+	}
+	return longueur;
+}
+
+int longueur_rec(Liste L)
+{
+	/* ... */
+}
+
+void visualiser_iter(Liste L)
+{
+	/* ... */
+}
+
+void visualiser_rec(Liste L)
+{
+	/* ... */
+}
+
+int rechercher_iter(element e, Liste L)
+{
+	/* ... */
+}
+
+Liste rechercher_rec(element e, Liste L)
+{
+	/* ... */
+}
+
+Liste ajouter_rec(element e, Liste L)
+{
+	/* ... */
+}
+
+Liste supprimer_iter(element e, Liste L)
+{
+	/* ... */
+}
+
+Liste supprimer_rec(element e, Liste L)
+{
+	/* ... */
+}
+
+Liste inverser_iter(Liste L)
+{
+	/* ... */
+}
+
+Liste inverser_rec(Liste L)
+{
+	/* ... */
+}
+
+/****************************************************************************/
+int main()
+{
+	int x;
+	Liste L = NULL;
+	scanf("%d", &x);
+	L = ajouter_iter(x, L);
+	printf("longueur=%d\n", longueur_iter(L));
+	visualiser_iter(L);
+	/* ... */
+}
+
+/****************************************************************************/
-- 
2.43.0