1. 리스트 (List)
ㅇ 자료의 목록
- 내부적으로 순서가 있는 일련의 데이터 집합
. 例) 리스트 = (원소1,원소2,...,원소n), Empty List = () ☞ 수열 참조
2. [전산] 리스트의 특징
ㅇ 리스트 내 항목들은 순서 또는 위치를 갖음
- 비록, 순서를 갖으나,
- 굳이, 저장 순서가 중요하지 않을 때에 유용
- 한편, 배열은 연속된 메모리 위치에 저장
ㅇ 데이터의 중복 허용 함
- 데이터 중복을 허용 않는 것은, ☞ 집합 참조
ㅇ 사용과 구현이 단순
- 비교적 저장 데이터가 적을 때에 유용
- 작은 규모에서 자료의 삽입,삭제,찾기가 용이한 편
ㅇ 다양한 데이터형으로 구현 가능하나, 주로, 배열 이용 구현
- 배열로 구현하면, 인덱스를 이용하여 즉시 원하는 원소를 취할 수 있음
ㅇ 검색은 다소 불편
- 리스트 내 어떤 요소를 찾는데는, 중간 노드들을 차례대로 따라가야 함
ㅇ 정렬은 비효율적
- 대규모 정렬이 필요한 응용에는 잘 사용하지 않는 자료구조 임
ㅇ 매우 유연한 구조
- 내용 변경, 크기 변경(늘임,줄임)이 쉬움
- 특히, 고정적인 배열 구조 보다는 훨씬 유연함
ㅇ 중간 삽입,삭제에 유리
- 배열에 비해, 중간 삽입,삭제에 효율적
ㅇ 다양한 응용
- 스택,큐,집합,더 복잡한 자료구조를 구현하는데, 리스트를 기반으로 구현하곤 함
3. [전산] 리스트의 구분
ㅇ (고정 크기) => 선형 리스트
- 적용 : 데이터 갯수가 제한된(고정된) 크기의 데이터를 자연스럽게 나열한 구조에 적합
- 구현 : 주로, 고정 크기의 배열에 의해 선형 리스트를 구현
ㅇ (가변 크기) => 연결 리스트 (단순 연결 리스트, 이중 연결 리스트, 원형 연결 리스트)
- 적용 : 동적으로 크기가 변할 수 있고, 삭제,삽입 등에 데이터 이동의 필요가 없는 용도에 적합
- 구현 : 주로, 포인터를 이용한 가변 크기의 연결 리스트로써 구현
ㅇ (정렬 여부)
- Array List (배열 리스트)
. 저장되는 순서 그대로 유지하는 자료구조
. 例) 단순 데이터 파일
- Sorted List (Ordered List, 순서 리스트)
. 저장되는 값을 항상 정렬된 상태로 유지하는 자료구조
. 例) DBMS 인덱스
4. [전산] 선형 리스트 (Linear List)
※ ☞ 선형 리스트 참조
- 고정 크기의 데이터들을 자연스럽게 나열한 구조
- 연속되는 장소에 저장되는 연속적(순차적) 자료구조 임
- 주로, 배열 이용 구현
5. [전산] 연결 리스트 (Linked List)
※ ☞ 연결 리스트 참조
- 연결 리스트는 선형리스트의 단점을 보완한 자료구조로써,
- 저장 데이터 및 포인터에 의해 연결된 비 연속적(비 순차적) 자료구조 임
6. [전산] 리스트의 연산 종류
※ ☞ 리스트 연산 참조
- 일반 연산 : create(),size(),isEmpty(),elements() 등
- 접근 및 갱신 연산 : get(),remove(),add() 등
7. [참고사항]
ㅇ 리스트를 내장 기능으로 제공하는 언어 例) ☞ 파이썬 리스트 참조