Tu travailles pour une entreprise de streaming musical.
On t'a confié la création d'une fonctionnalité de playlist pour ton lecteur de musique.
Écris le prototype d'une application de lecteur de musique.
Pour ce prototype, chaque chanson sera simplement représentée par un nombre. À partir d'une plage de nombres (les identifiants des chansons), crée une liste simplement chaînée.
À partir d'une liste simplement chaînée, tu dois pouvoir inverser la liste pour lire les chansons dans l'ordre inverse.
La liste chaînée est une structure de données fondamentale en informatique, souvent utilisée pour implémenter d'autres structures de données.
Le type de liste chaînée le plus simple est la liste simplement chaînée. Cela signifie que chaque élément (ou « nœud ») contient une donnée, ainsi qu'une référence qui pointe vers le nœud suivant de la liste.
Si tu veux approfondir les listes chaînées, jette un œil à cet article qui les explique à l'aide de jolis schémas.
Définis un tuple linked-list-node.
Définis un tuple linked-list et fournis une méthode M: linked-list length
(de sequences) pour que les tests puissent appeler length directement
sur ta liste.
<linked-list> ( -- linked-list ) construit une liste vide.>linked-list ( seq -- linked-list ) empile chaque élément de
seq sur une nouvelle liste, dans l'ordre.linked-list>array ( linked-list -- array ) renvoie les
valeurs, le sommet de la liste en premier.list-push ( linked-list value -- linked-list ) empile une valeur
au sommet.list-pop ( linked-list -- linked-list value ) retire et
renvoie la valeur du sommet.list-peek ( linked-list -- value ) renvoie la valeur du sommet
sans la retirer.list-reverse ( linked-list -- linked-list ) renvoie une liste
avec les éléments dans l'ordre inverse.Lance une classe d'erreur list-empty depuis list-pop et list-peek
quand la liste est vide.
Inscris-toi sur Exercism pour apprendre et maîtriser Factor avec 47 concepts163 exercices, et un vrai mentorat humain, le tout gratuitement.