LL

DATA STRUCTURE

연결 리스트 (Linked List)

각 노드가 다음 노드의 위치만 기억하는 구조를 확인하세요. 배열과 달리 중간에 값을 넣고 빼는 데 다른 값들을 옮길 필요가 없지만, 원하는 노드를 찾으려면 처음부터 하나씩 따라가야 합니다 — 재생목록·즐겨찾기 관리 시나리오로 이 트레이드오프를 직접 체감할 수 있습니다.

HEAD →

재생 버튼을 누르거나 다음 단계 버튼으로 연결 리스트 연산을 시작하세요.

삽입 0회 · 삭제 0회

1 / 1

속도
리스트 내부 노드 순회 중 (비교 대상) 방금 삽입된 노드 값을 찾지 못함

PSEUDOCODE

insertFront(value): head 앞에 새 노드 연결insertBack(value): 끝까지 순회한 뒤 새 노드 연결insertAfter(target, value): target을 찾은 뒤 그 뒤에 연결  cur ← cur.next  // 순회하며 값 비교deleteValue(value): target을 찾은 뒤 앞뒤 노드를 직접 연결해 건너뜀찾지 못하면 "값을 찾을 수 없음" 오류 반환

어떻게 동작하나요

연결 리스트는 각 노드가 값과 함께 "다음 노드의 위치"만 저장하는 구조입니다. 배열처럼 값들이 메모리에 연속으로 붙어있지 않아도 되므로, 중간에 노드를 끼워 넣거나 빼도 뒤의 값들을 한 칸씩 옮길 필요가 없습니다. 대신 특정 값을 찾으려면 인덱스로 바로 접근할 수 없고 HEAD부터 하나씩 따라가야 합니다(순회) — 이 순회 비용이 연결 리스트의 가장 큰 특징입니다.

시간·공간 복잡도

HEAD 앞에 삽입
O(1)
특정 값 찾기 (순회)
O(n)
찾은 뒤 삽입·삭제
O(1)
임의 위치 접근(인덱스)
불가 (배열의 장점)
공간 복잡도
O(n)

"검색 후 삽입/삭제" 시나리오에서 순회 스텝(호박색)이 몇 번 발생하는지 세어보면, 값을 찾는 비용이 배열의 인덱스 접근과 어떻게 다른지 체감할 수 있습니다.

다른 자료구조(해시 테이블·힙·이진 탐색 트리)도 이어서 시각화할 예정입니다 — Algorithm 코스로 돌아가기

1:1 정원제 · 상시 모집

자료구조도 손으로 직접 다뤄봐야 오래 남습니다

당신에게 맞는 커리큘럼은 1:1 상담에서부터 시작됩니다.