學習軌道
/
Factor
Factor
/
練習
/
簡易鏈結串列
簡易鏈結串列

簡易鏈結串列

中等

簡介

你在一間音樂串流公司工作。

你的任務是為你的音樂播放器應用程式打造播放清單功能。

說明

寫一個音樂播放器應用程式的原型。

在這個原型中,每首歌只用一個數字來代表。 給定一段數字範圍(也就是歌曲 ID),請建立一個單向鏈結串列。

給定一個單向鏈結串列,你應該要能反轉這個串列,讓歌曲以相反的順序播放。

Note

鏈結串列是電腦科學中一種基礎的資料結構,常用來實作其他資料結構。

最簡單的鏈結串列是單向鏈結串列。 這表示每個元素(或稱「節點」)都包含資料,以及某個指向串列中下一個節點的東西。

如果你想更深入了解鏈結串列,可以看看這篇文章,裡面用很棒的圖解說明了這個概念。

詞

定義一個linked-list-node元組。

定義一個linked-list元組,並提供一個M: linked-list length方法(來自sequences),讓測試可以直接在你的連結串列上呼叫length。

  • <linked-list> ( -- linked-list ):建構一個空的連結串列。
  • >linked-list ( seq -- linked-list ):依序把seq的每個元素推入一個全新的連結串列。
  • linked-list>array ( linked-list -- array ):回傳所有值,最上面的元素排在最前面。
  • list-push ( linked-list value -- linked-list ):把一個值推入頂端。
  • list-pop ( linked-list -- linked-list value ):移除並回傳最上面的值。
  • list-peek ( linked-list -- value ):回傳最上面的值,但不移除它。
  • list-reverse ( linked-list -- linked-list ):回傳一個元素順序相反的連結串列。

當連結串列為空時,從list-pop和list-peek拋出list-empty錯誤類別。

透過 GitHub 編輯 連結會在新視窗或分頁中開啟
Factor Exercism

準備好開始 簡易鏈結串列 了嗎?

註冊 Exercism,透過 47 個概念163 個練習 和真人引導來學習並精通 Factor,全部免費。