La chasse au trésor
Dans une chasse au trésor, chaque papier te dit où trouver le suivant. Le premier est sous le banc. Il t’envoie au gymnase. Le deuxième t’envoie à la cantine.
Tu ne vois jamais tout le parcours d’un coup. Tu suis les indices.
Une liste chaînée range des données de cette façon.
Mots-clés
| Mot | Ce que ça veut dire | Exemple |
|---|---|---|
| Maillon | Un morceau de la chaîne : une valeur et l’adresse du suivant. | ["pain", 0] |
| Liste chaînée | Des maillons reliés l’un à l’autre, du premier au dernier. | pain, lait, oeufs |
| Tête | La case du premier maillon. On commence toujours par là. | tete = 1 |
| Suivant | La case du maillon d’après. Il vaut -1 s’il n’y en a pas. | maillons[1][1] |
| Parcourir | Suivre les liens, un maillon après l’autre. | Lire pain, puis lait, puis oeufs |
| Insérer | Glisser un nouveau maillon au milieu de la chaîne. | Mettre beurre après pain |
Les cellules que les étudiants remplissent restent vides dans cet aperçu.
À toi : suis les indices
À toi de jouer
À toi : suis les indices
3 questionsTes réponses sont corrigées ici et ne sont pas conservées. Un compte garde tes résultats.
Des maillons et des liens
Chaque maillon contient deux choses : une valeur et la case du suivant.
En Python, on écrit un maillon comme une petite liste : ["pain", 0]. Le pain est la valeur. Le 0 est la case du maillon suivant.
Le dernier maillon n’a pas de suivant. On écrit -1 à la place.
Où commence la chaîne ?
Les maillons sont rangés dans une liste Python, mais pas forcément dans l’ordre de la chaîne.
Pour savoir où commencer, on garde une variable : la tête. Elle contient la case du premier maillon.
À toi : suivre la chaîne
# Chaque maillon est [valeur, case du maillon suivant]. -1 veut dire : fin de la chaîne.
maillons = [["lait", 2], ["pain", 0], ["oeufs", -1]]
tete = 1 # la chaîne commence à la case 1
courant = tete
while courant != -1:
valeur = maillons[courant][0]
suivant = maillons[courant][1]
print("Case", courant, ":", valeur, "-> prochaine case", suivant)
courant = suivant
print("Fin de la chaîne.")
# Mets tete = 0. Quelle liste de courses lis-tu maintenant ?
Exemple travaillé : le parcours pas à pas
| Étape | Case lue | Valeur | Suivant |
|---|---|---|---|
| Départ | tete = 1 | - | - |
| 1 | 1 | pain | 0 |
| 2 | 0 | lait | 2 |
| 3 | 2 | oeufs | -1 |
| Fin | -1 | on s’arrête | - |
Les cellules que les étudiants remplissent restent vides dans cet aperçu.
À toi : lis la chaîne à la main
À toi de jouer
À toi : lis la chaîne à la main
4 questionsTes réponses sont corrigées ici et ne sont pas conservées. Un compte garde tes résultats.