Du arbeitest für ein Musik-Streaming-Unternehmen.
Du hast die Aufgabe bekommen, ein Playlist-Feature für deine Musikplayer-App zu entwickeln.
Schreib einen Prototyp einer Musikplayer-Anwendung.
Für den Prototyp wird jeder Song einfach durch eine Zahl dargestellt. Erstelle aus einem Bereich von Zahlen (den Song-IDs) eine einfach verkettete Liste.
Bei einer einfach verketteten Liste solltest du die Liste umkehren können, um die Songs in umgekehrter Reihenfolge abzuspielen.
Die verkettete Liste ist eine grundlegende Datenstruktur in der Informatik und wird oft bei der Implementierung anderer Datenstrukturen verwendet.
Die einfachste Art der verketteten Liste ist die einfach verkettete Liste. Das bedeutet, dass jedes Element (oder „Knoten“) Daten enthält, zusammen mit etwas, das auf den nächsten Knoten in der Liste zeigt.
Wenn du tiefer in verkettete Listen eintauchen möchtest, schau dir diesen Artikel an, der sie mit schönen Zeichnungen erklärt.
Definiere ein linked-list-node-Tupel.
Definiere ein linked-list-Tupel und stelle eine Methode
M: linked-list length bereit (aus sequences), damit die Tests
length direkt auf deiner Liste aufrufen können.
<linked-list> ( -- linked-list ) – erzeugt eine leere Liste.>linked-list ( seq -- linked-list ) – legt jedes Element von
seq der Reihe nach auf eine neue Liste.linked-list>array ( linked-list -- array ) – gibt die Werte
zurück, das oberste Element der Liste zuerst.list-push ( linked-list value -- linked-list ) – legt einen
Wert oben auf die Liste.list-pop ( linked-list -- linked-list value ) – entfernt den
obersten Wert und gibt ihn zurück.list-peek ( linked-list -- value ) – gibt den obersten Wert
zurück, ohne ihn zu entfernen.list-reverse ( linked-list -- linked-list ) – gibt eine Liste
mit den Elementen in umgekehrter Reihenfolge zurück.Wirf aus list-pop und list-peek eine Fehlerklasse list-empty,
wenn die Liste leer ist.
Melde dich bei Exercism an, um Factor mit 47 Konzepte163 Übungen und echtem menschlichen Mentoring zu lernen und zu meistern, alles kostenlos.