데이터를 감싼 노드를 포인터로 연결해서 공간적인 효율성을 극대화시킨 자료 구조
각 노드가 데이터와 포인터를 가지고 한 줄로 연결되어 있는 방식으로 데이터를 저장하는 자료 구조
삽입, 삭제 O(1), 탐색 O(n)
다음 노드를 가리키는 포인터는 다음 노드의 주소를 값으로 가지고 있음
맨 앞에 있는 노드를 헤드라고 함
싱글 연결 리스트
다음 노드를 가리키는 next 포인터만 가지는 연결 리스트
이전 요소 접근에 매우 부적합
클래스
class Node {
Node next; // 다음 노드 주소를 저장하는 필드
int data; // 데이터를 저장하는 필드
};
이중 연결 리스트
next포인터와 이전 노드를 가리키는 prev 포인터도 가지는 연결 리스트
단방향이던 이동 방향을 양방향으로 가능하게 해서 역순 검색이 가능하도록 함
기본적으로 많이 사용되는 방식
클래스
class Node {
Node next; // 다음 노드 주소를 저장하는 필드
Node prev; // 이전 노드 주소를 저장하는 필드
int data; // 데이터를 저장하는 필드
};
원형 이중 연결 리스트