리스트란?
리스트(list)는 컴퓨터 과학에서 같은 값이 한 번 이상 존재할 수 있는 일련의 값이 모여있는 추상적 자료형이다.
리스트는 유한수열(finite sequence)을 프로그래밍적으로 표현한 것이며 시퀀스(sequence)라고도 부른다.
리스트의 인스턴스는 무한 시퀀스의 수학 개념을 컴퓨터 상에 표현한 것이며 잠재적으로 무한인 리스트는 스트림과 동격이다.
[1]:§3.5 Abelson, Harold; Sussman, Gerald Jay (1996). 《Structure and Interpretation of Computer Programs》. MIT Press.
리스트는 다른 값들을 포함할 수 있기 때문에 컨테이너의 기초적인 한 예로 간주된다.
같은 값이 여러 번 발생하면 각각의 발생한 건들은 별개의 항목으로 취급한다.
리스트라는 이름은 특히 링크드 리스트처럼 추상 리스트를 구현하는데 사용할 수 있는 여러 자료 구조에 사용된다.
수많은 프로그래밍 언어들은 리스트 자료형을 지원하며 리스트와 리스트 조작을 위한 특수한 문법과 시맨틱을 갖추고 있다.
리스트는 괄호 '()', '[]', 또는 '<>'와 같은 구분자 쌍 안에 쉼표, 세미콜론, 공백으로 구분하여 시퀀스 내에 항목을 쓰게 함으로써 구성되는 것이 일반적이다.
일부 언어들은 배열 자료형처럼 리스트 타입의 색인 및 슬라이싱을 가능케 하며,
여기서 자료형은 '배열'이라는 이름으로 더 정확히 기술된다.
객체 지향 프로그래밍 언어에서 리스트는 제네릭 "리스트" 클래스의 서브클래스의 인스턴스로 제공되는 것이 보통이며 별도의 반복자를 통해 경유된다.
리스트 자료형은 배열 자료 구조나 특정한 유형의 링크드 리스트를 사용하여 구현되기도 하지만 일부 목적에는 다른 자료 구조를 사용하는 것이 더 적절할 수도 있다.
리스프 프로그래밍과 같은 같은 일부 문맥에서 리스트라는 용어는 배열이 아닌 링크드 리스트를 의미할 수 있다.
특징
순서가 있는 엘리먼트의 모임이다.
인덱스가 중요한 배열과 달리 element간의 순서가 중요하다.
빈 엘리먼트는 허용되지 않는다.
일반적으로 리스트 데이터 스트럭쳐는 아래와 같은 기능(operation)을 가지고 있다.
- 처음, 끝, 중간에 엘리먼트를 추가/삭제하는 기능
- 리스트에 데이터가 있는지를 체크하는 기능
- 리스트의 모든 데이터에 접근할 수 있는 기능
위와 같은 기능을 가지고 있고, 순서가 있으면서 중복이 허용된다면 그러한 데이터 스트럭쳐를 리스트라고 한다.
리스트의 종류
- 순차 리스트(ArrayList)
- 연결 리스트(Linked List)
- 단순 연결 리스트
- 이중 연결 리스트
- 원형 연결 리스트
참조
en.wikipedia.org/wiki/List_(abstract_data_type)
ko.wikipedia.org/wiki/%EB%A6%AC%EC%8A%A4%ED%8A%B8_(%EC%BB%B4%ED%93%A8%ED%8C%85)
opentutorials.org/module/1335/8636
'Computer Science > DataStructure' 카테고리의 다른 글
Implement Linked List (0) | 2021.04.26 |
---|---|
Linked List (연결 리스트) (0) | 2021.03.07 |
ArrayList (0) | 2021.02.25 |
Array (배열) (0) | 2021.02.25 |
Data Structure란? (0) | 2021.02.25 |