Learning
토픽 69 / 76·비교표

## Part 2: 선형 자료구조

배열 vs 연결 리스트

항목배열연결 리스트
메모리연속 공간비연속 (포인터 연결)
크기고정 (동적 배열 제외)동적
접근O(1) 임의 접근O(n) 순차 접근
삽입/삭제O(n) 중간O(1) 위치 알 때
캐시친화적 (연속 메모리)비효율 (분산 메모리)
적용룩업 테이블, 행렬LRU 캐시, 해시 체이닝

동적 배열 vs 연결 리스트

항목동적 배열연결 리스트
메모리연속 (재할당 시 복사)비연속
접근O(1)O(n)
끝 추가O(1) 분할상환O(1) (tail 유지 시)
중간 삽입O(n)O(1) (위치 알 때)
적용ArrayList, vector동적 크기 필요 시

단일 vs 이중 vs 원형 연결 리스트

항목단일이중원형
포인터next만prev + nextnext (마지막→첫번째)
탐색단방향양방향무한 순환
삭제O(n) (이전 노드 탐색)O(1) (prev 직접)O(n)
메모리가장 적음2배 포인터단일과 유사
적용기본 리스트LRU 캐시, Undo/Redo라운드 로빈, 게임 턴

스택 vs 큐

항목스택
원칙LIFO (후입선출)FIFO (선입선출)
접근top만front/rear
연산push/pop O(1)enqueue/dequeue O(1)
적용DFS, 함수 호출, UndoBFS, 프로세스 스케줄링
구현배열/연결리스트원형 큐/연결리스트

덱 vs 큐 vs 스택

항목덱 (Deque)스택
삽입양쪽rear만top만
삭제양쪽front만top만
유연성최고 (양방향)FIFOLIFO
적용슬라이딩 윈도우순차 처리역순 처리

우선순위 큐 vs 일반 큐

항목우선순위 큐일반 큐
순서우선순위 기반FIFO (삽입 순서)
구현힙 기반배열/연결리스트
삽입O(log n)O(1)
삭제O(log n)O(1)
적용Dijkstra, 작업 스케줄링BFS, 버퍼