1. 비선형 자료 구조
- 일렬로 나열하지 않고 자료 순서나 관계가 복잡한 구조
- 일반적으로 트리나 그래프를 말함
1) 힙
- 완전 이진 트리 기반의 자료구조
- 최소힙과 최대힙 두가지가 있고 해당 힙에 따라 특징을 지킨 트리
* 최대힙 : 루트 노드에 있는 키는 모든 자식에 있는 키중에서 가장 커야한다
각 노드의 자식 노드와의 관계도 이와 같은 특징이 재귀적으로 이뤄져야 함
* 최소힙 : 최소힙에서 루트노드에 있는 키는 모든 자식에 있는 키 중 최소값이어야 함
각 노드의 자식 노드와의 관계도 이와 같은 특징이 재귀적으로 이루어져야 함
- 힙에는 어떤 값이 들어와도 특정 힙의 규칙을 지키게 만들어짐
(1) 최대힙의 삽입
- 힙에 새로운 요소가 들어오면, 일단 새로운 노드를 힙의 마지막 노드에 이어서 삽입함
- 새로운 노드를 부모 노드들과의 크기를 비교하며 교환해서 힙의 성질은 만족시킴
- 예) 아래와 같이 8이라는 값을 가진 노드 밑에 15라는 값을 가진 노드를 삽입하는 경우 점차 올라가면서
해당 노드 위에 있는 노드와 스왑하느 ㄴ과정을 거쳐 최대힙 조건을 만족함
(2) 최대힙의 삭제
- 최대힙에서 최대값은 루트노드이므로 루트노드가 삭제되고, 그 이후 마지막 노드와 루트노드를
스왑하여 또다시 스왑 등의 과정을 거쳐 재구성 됨
2) 우선순위 큐
- 우선순위 대기열이라고도 하며, 대기열에서 우선순위가 높은 요소가 우선 순위가 낮은 요소보다
먼저 제공되는 자료 구조
- 힙을 기반으로 구현됨
3) 맵
- 특정 순서에 따라 키와 매핑된 값의 조합으로 형성된 자료구조
- 예) 이승철 : 1, 박동영 : 2 같은 방식으로 string : int 형태로 값을 할당해야 할때 map 을 하용
- 레드 블랙 트리 자료구조를 기반으로 형성되고 삽입하면 자동으로 정렬
- 해시 테이블을 구현할 때 쓰며 정렬을 보장하지 않는 unordered_map 과 정렬을 보장하는 map 두가지가 있다
4) 셋
- 특정 순서에 따라 고유한 요소를 저장하는 컨테이너
- 중복되는 요소는 없고 오로지 희소한 값만 저장하는 자료구조
5) 해시테이블
- 무한에 가까운 데이터들을 유한한 개수의 해시 값으로 매핑한 테이블
- 삽입, 삭제, 탐색 시 평균적으로 O(1) 의 시간복잡도를 가지며 unordered_map 으로 구현
'CS 전공지식' 카테고리의 다른 글
24.01.25 스레드와 멀티스레딩 그리고 공유자원과 임계영역 (0) | 2024.01.25 |
---|---|
24.01.24 프로세스 2 (1) | 2024.01.24 |
24.01.19 비선형 자료 구조 1 (0) | 2024.01.19 |
24.01.18 선형 자료 구조 2 (0) | 2024.01.18 |
24.01.17 선형 자료 구조 1 (0) | 2024.01.17 |