스택

LIFO

연산이 한 쪽에서만 이루어진다.

스택의 끝을 (Top), 스택의 시작을 (Bottom)이라 한다.

선입선출

삽입이 일어나는 쪽을 뒤(Rear), 삭제가 일어나는 쪽을 앞(Front)라고 한다.

 

큐 (Queue)

std::queue

입력과 출력이 한방향으로 이루어지는 구조

 

데크 (Double-ended Queue)

std::deque

입력과 출력이 양방향으로 이루어지는 구조

 

청크 리스트 (Chunk List)

선형 리스트 + 연결 리스트

데이터 접근이 용이한 선형 리스트와, 데이터 삽입/삭제가 용이한 연결리스트의 장점을 활용

고정된 길이연속된 메모리를 연결해 놓은 형태로

청크의 크기가 크지 않아 데이터의 삽입/삭제가 용이하고, 청크 단위로 접근하여 접근에도 용이하다.

 

Stack과 Queue는 기본 컨테이너로 Deque를 사용한다.

 

순차 자료구조로 구현한 큐 (원형 큐)

 

 

연결 자료구조로 구현한 큐

이전 원소를 알 필요가 없기 때문에 단일 연결 리스트로 구현하는 것이 효율적

다만 삭제를 위해 마지막 원소를 가리키는 데이터가 필요하다.

728x90

'Program > C (C++,C#)' 카테고리의 다른 글

[C++] 그래프  (0) 2022.07.05
[C++] 이중 원형 연결 리스트 (LinkedList) 만들기  (0) 2022.06.26
[C++] 리스트  (0) 2022.06.21
[C++] 동적 할당  (0) 2022.06.15
[C++] 가상 함수  (0) 2022.06.13

+ Recent posts