트랙
/
Factor
Factor
/
연습 문제
/
간단한 연결 리스트
간단한 연결 리스트

간단한 연결 리스트

보통

소개

음악 스트리밍 회사에서 일하고 있어요.

음악 플레이어 애플리케이션에 사용할 플레이리스트 기능을 만드는 일을 맡게 됐어요.

지침

음악 플레이어 애플리케이션의 프로토타입을 작성해요.

프로토타입에서는 각 노래를 숫자로 나타내요. 숫자 범위(노래 ID)가 주어지면 단방향 연결 리스트를 만들어요.

단방향 연결 리스트가 주어지면, 리스트를 뒤집어서 노래를 반대 순서로 재생할 수 있어야 해요.

Note

연결 리스트는 컴퓨터 과학의 기본적인 자료 구조이며, 다른 자료 구조를 구현할 때 자주 사용돼요.

가장 단순한 연결 리스트는 단방향 연결 리스트예요. 즉, 각 요소(또는 "노드")는 데이터와 함께 리스트의 다음 노드를 가리키는 무언가를 담고 있어요.

연결 리스트에 대해 더 깊이 알아보고 싶다면, 멋진 그림으로 설명해 주는 이 글을 확인해 봐요.

단어

linked-list-node 튜플을 정의해요.

linked-list 튜플을 정의하고, 테스트에서 리스트에 대해 length를 직접 호출할 수 있도록 sequences에 있는 M: linked-list 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에 가입하고 Factor 트랙을 개념 47개연습 문제 163개, 그리고 실제 사람의 멘토링과 함께 배우고 익혀 보세요. 모두 무료예요.