轨道
/
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,全部免费。