루리코딩 세상

자료 구조(Data Structures) 종류 및 특징 도표 / 작성일 기록부 본문

이론/자료구조

자료 구조(Data Structures) 종류 및 특징 도표 / 작성일 기록부

루리딩 2025. 5. 20. 09:25

C++에서 사용되는 자료 구조 (Data Structures)는 크게 표준 라이브러리(STL)에서

제공하는 것들과, 사용자가 직접 구현하는 기본 구조로 나눌 수 있다.

1. 기본 자료 구조 (직접 구현 가능)
자료 구조 특징 비고
1. 배열 ( Array ) 고정 크기의 연속된 메모리 공간, 인덱스로 접근 2025.05.29
2. 연결 리스트 ( Linked List ) 노드 단위로 연결된 구조. 삽입&삭제 효율적 2025.05.29
3. 스택 ( Stack ) 후입선출(LIFO) ex : 함수 호출 스택 2025.05.19
4. 큐 ( Queue ) 후입선출(FIFO) ex : 이벤트 처리 2025.05.19
5. 원형 큐 ( Circular Queue ) 고정된 크기의 큐, 연결 리스트보다 빠름 2025.05.19
6. 이중 연결 리스트
(Doubly Linked List )
앞/뒤로 연결된 리스트  
7. 트리 ( Tree ) 계층적 구조. 이진 트리, AVL, 힙 등 다양  
8. 그래프 ( Graph ) 정점과 간선으로 구성된 구조  
9. 힙 ( Heap ) 우선 순위 큐 구현에 사용, 최대/최소 힙  
10. 트라이 ( Trie ) 문자열 탐색에 특화된 트리  
11. 해시 테이블 ( Hash Table 키-값 쌍 저장, 빠른 검색, 충돌 처리 필요  
       
2. STL(Standard Template Library) 컨테이너 // 순차 컨테이너 (Sequence Containers)
자료 구조 특징 비고
1. 벡터 ( Vertor ) 동적 배열, 가장 많이 사용됨  
2. 리스트 ( List ) 이중 연결 리스트  
3. 데크 ( Deque ) 앞 뒤 삽입/삭제가 빠른 큐  
4. 배열 ( Array ) 고정 크기 배열 ( C++11 부터 도입 )  
5. 단방향 리스트
( Forward_List )
단방향 연결 리스트 ( C++11 부터 도입)  
       
2. STL(Standard Template Library) 컨테이너 // 연관 컨테이너 (Associative Containers)
자료 구조 특징 비고
1. ( Set ) 중복 없는 정렬된 집합  
2. ( Multiset ) 중복 허용 정렬 집합  
3. ( Map ) 키-값 쌍 저장, 키는 유일  
4. ( Multimap ) 중복 키 허용  
       
2. STL(Standard Template Library) 컨테이너 // 비정렬 연관 컨테이너 (Unordered Containers)
자료 구조 특징 비고
1. ( Unorered_set ) 해시 기반 set  
2. ( Unorered_map ) 해시 기반 map  
3. ( Unorered_Multiset ) 중복 허용  
4. ( Unorered_multimap ) 중복 키 허용  
       
3. 어댑터 (Container Adapters)
어댑터 내부 구조 기반 특징 비고
1. ( Stack ) Deque 또는 Vector 후입선출 스택  
2. ( Queue ) Deque 선입선출 큐  
3. ( Priority_queue ) Vector + Heap 우선순위 큐(내부적으로 힙사용)  
4. 기타 관련 구조 및 도구      
요소 특징  
1. ( Pair ), ( Tuple ) 복수 값 저장용 구조체 느낌  
2. ( Bitset ) 비트 배열 표현  
3. ( Span ) (C++20) 연속된 데이터를 슬라이스처럼 참조  
4. ( Stacktrace ) (C++23) 함수 호출 추적용 (디버깅 용도)