From e7cf7ef8359c4d2edbe3ff994ffd5cf8a7b27372 Mon Sep 17 00:00:00 2001 From: Gabriel Augendre Date: Wed, 10 Dec 2014 09:41:51 +0100 Subject: [PATCH] correction insertion + ajout suppression --- algo_avancee/listes.md | 60 +++++++++++++++++++++++++++++++----------- 1 file changed, 45 insertions(+), 15 deletions(-) diff --git a/algo_avancee/listes.md b/algo_avancee/listes.md index 5ef6afa..b984d13 100644 --- a/algo_avancee/listes.md +++ b/algo_avancee/listes.md @@ -113,24 +113,54 @@ def insereTrie(tete, maillon): : maillon : Maillon """ # Début - trouve = False - if maillon.val <= tete.val: - maillon.suivant = tete + if tete is None: tete = maillon - trouve = True - # endif + else: + trouve = False + if maillon.val <= tete.val: + maillon.suivant = tete + tete = maillon + trouve = True + # endif - if not trouve: - ptr = tete - while ptr.suivant is not None and not trouve: - if maillon.val <= ptr.suivant.val and maillon.val >= ptr.val: - trouve = True - maillon.suivant = ptr.suivant - ptr.suivant = maillon - ptr = ptr.suivant - # endwhile if not trouve: - ptr.suivant = maillon + ptr = tete + while ptr.suivant is not None and not trouve: + if maillon.val <= ptr.suivant.val and maillon.val >= ptr.val: + trouve = True + maillon.suivant = ptr.suivant + ptr.suivant = maillon + ptr = ptr.suivant + # endwhile + if not trouve: + ptr.suivant = maillon + # endif + # endif + # Fin +``` + +```python +def supprimer(tete, valeur): + """ + : entrées + : tete : Maillon + : maillon : Maillon + """ + # Début + if tete is not None: + ptr = tete + while ptr.suivant is not None and not trouve: + if ptr.suivant.val == valeur: + old = ptr.suivant + ptr.suivant = old.suivant + free(old) + trouve = True + ptr = ptr.suivant + # endwhile + if not trouve and ptr.val == valeur: + old = ptr.suivant + ptr.suivant = old.suivant + free(old) # endif # Fin ```