Data Structures Algorithms
Designing the containers that hold and retrieve data. Learn the 7 topics below step by step with interactive visualizations.
마지막에 넣은 것을 가장 먼저 꺼내는 후입선출(LIFO) 구조입니다. 한쪽 끝(top)에서만 삽입·삭제가 일어나며, 함수 호출 스택·실행 취소·괄호 검사·DFS의 뼈대가 됩니다.
O(1) push/pop먼저 넣은 것을 먼저 꺼내는 선입선출(FIFO) 구조입니다. 뒤(rear)에서 넣고 앞(front)에서 빼며, BFS·작업 대기열·버퍼링의 기반이 됩니다.
O(1) enqueue/dequeue양쪽 끝에서 모두 삽입·삭제가 가능한 이중 종단 큐입니다. 스택과 큐를 모두 흉내낼 수 있어 슬라이딩 윈도우·회문 검사·양방향 탐색에 활용됩니다.
O(1) 양끝 삽입/삭제각 노드가 값과 다음 노드를 가리키는 포인터로 이어진 구조입니다. 연속된 메모리가 필요 없어 삽입·삭제가 O(1)이지만, 임의 접근은 O(n)으로 순차 탐색해야 합니다.
삽입 O(1) · 탐색 O(n)왼쪽 자식 < 부모 < 오른쪽 자식 규칙을 지키는 이진 트리입니다. 정렬된 구조 덕분에 탐색·삽입·삭제를 평균 O(log n)에 처리하지만, 한쪽으로 치우치면 O(n)까지 퇴화합니다.
평균 O(log n)부모가 항상 자식보다 작은(최소 힙) 완전 이진 트리로, 배열로 구현됩니다. 루트가 항상 최솟값이라 우선순위 큐의 표준 구현이며, 다익스트라·힙 정렬의 핵심입니다.
삽입/삭제 O(log n)키를 해시 함수로 버킷 인덱스에 매핑해 평균 O(1)에 저장·조회합니다. 서로 다른 키가 같은 버킷으로 충돌하면 체이닝(연결 리스트)이나 개방 주소법으로 해결합니다.
평균 O(1)