Outils pour utilisateurs

Outils du site


poubelle:exercice_recursivite

Exercice sur une liste chaînée

Dans le fichier noeud_recur.py, on définit une classe Noeud qui est un maillon de liste chaînée.

Chaque nœud contient une valeur et pointe vers un élément suivant qui est soit le nœud suivant dans la chaîne, soit None s'il n'y a pas d'éléments suivant.

La classe contient deux méthodes récursives, length et str. On souhaite les modifier.

  1. Pour length proposer au choix :
    • une version récursive terminale
    • une version non récursive utilisant une boucle while
  2. Pour __str__ proposer une version non récursive utilisant une boucle while.

Notre classe n'est pas bien protégée. On pourrait créer une chaîne qui reboucle sur elle-même – le dernier maillon pointant sur le premier – et qui créerait de grandes difficultés aux méthodes length et __str__. Vous pouvez réfléchir à une technique permettant de s'assurer, quand on utilise la méthode plug_on pour brancher un nœud, qu'on ne crée pas une chaîne qui se boucle.

poubelle/exercice_recursivite.txt · Dernière modification : de goupillwiki