////
Search
Duplicate

연결리스트 - 주현

연결리스트

데이터를 감싼 노드를 포인터로 연결해서 공간적인 효율성을 극대화시킨 자료 구조
각 노드가 데이터와 포인터를 가지고 한 줄로 연결되어 있는 방식으로 데이터를 저장하는 자료 구조
삽입, 삭제 O(1), 탐색 O(n)
다음 노드를 가리키는 포인터는 다음 노드의 주소를 값으로 가지고 있음
맨 앞에 있는 노드를 헤드라고 함

종류

싱글 연결 리스트
다음 노드를 가리키는 next 포인터만 가지는 연결 리스트
이전 요소 접근에 매우 부적합
탐색 시간이 O(n) 1000개의 데이터에 999번째 데이터는 노드를 999번 이동
클래스
class Node { Node next; // 다음 노드 주소를 저장하는 필드 int data; // 데이터를 저장하는 필드 };
Java
복사
이중 연결 리스트
next포인터와 이전 노드를 가리키는 prev 포인터도 가지는 연결 리스트
단방향이던 이동 방향을 양방향으로 가능하게 해서 역순 검색이 가능하도록 함
기본적으로 많이 사용되는 방식
실제로 자바의 LinkedList는 이중 연결 리스트로 구현 되어 있음
클래스
class Node { Node next; // 다음 노드 주소를 저장하는 필드 Node prev; // 이전 노드 주소를 저장하는 필드 int data; // 데이터를 저장하는 필드 };
Java
복사
원형 이중 연결 리스트
첫 번째 노드와 마지막 노드를 각각 연결시켜 원형으로 만든 이중 연결 리스트
티비 채널 순회나 오디오 플레이어 같이 데이터를 순차적 방식으로 처리하다 마지막 요소를 만나면 다시 처음 요소로 되돌아가는 곳에서 사용
단일 연결 리스트 원형으로 연결한 ‘원형 싱글 연결 리스트’도 존재함, 하지만 잘 쓰이지 않음