자료구조 - 연결 리스트(Linked List)
연결 리스트(Linked List)
자료구조의 기본 표현방식인 연결 리스트를 익힌다.
1. 개념
- 자료들을 연결 구조 방식으로 표현한다.
- 각 원소에 저장되어 있는 다음 원소의 주소에 대한 참조에 의해 연결된다.
- 연결 리스트는 <element, address> 단위로 저장된다. 이러한 단위구조를 노드(node)라 한다. 노드는 데이터 필드와 링크 필드로 구성된다.
- 데이터 필드(Data field) : 저장할 원소의 값이다. 변수
- 링크 필드(Link field) : 메모리 참조 변수를 사용하여 주소에 대한 참조 값을 저장한다.
- 단순 연결리스트, 원형 연결리스트, 이중 연결리스트, 이중 원형 연결리스트가 있다.
연결 리스트의 장점(선형 리스트와 비교했을 때)
- 논리적 순서와 물리적 순서가 일지하지 않아도 됨 -> 오버헤드가 발생하지 않는다.
- 데이터를 삽입/삭제할 때 모든 인덱스를 변경하지 않고 이전 데이터에 대한 참조만 변경하면 된다.
- 크기 변경에 유연하여 효율적으로 메모리를 사용할 수 있다.
연결 리스트의 단점(선형 리스트와 비교했을 때)
- 접근속도(access time)에 많은 시간이 걸린다.
- 알고리즘이 복잡하다.
2. 구현
2.1. 단순 연결 리스트(Singly Linked List)
- 한쪽 방향으로만 연결된다.
- 생성, 삽입, 삭제, 탐색 구현
단순 연결 리스트의 기본 구조
‘중간에 데이터 추가’ 참고 그림
참고문헌
생활코딩님, hyeonstorage님, 책 - ‘자바로 배우는 쉬운 자료구조’
update : 2016-03-02