Data_structure

(Data_structure) Deque

K_Hyul 2023. 12. 7. 19:40
728x90

Deque는 Double-end Queue로 배열과 유사하지만 벡터와는 달리 양쪽 끝에서 삽입과 삭제가 가능하다

Doubly Linked List에 배열의 요소가 들어가 있다고 생각하면 이해하기 편하다.

 

Deque의 ADT는

push_back() : 뒤쪽에 data 추가

push_front() : 앞쪽에 data 추가

pop_back() : 뒤쪽의 data 삭제

pop_front() : 앞쪽의 data 삭제

at() : 인덱스를 통해 접근

operator[] : 배열과 같이 인덱스를 통해 접근

resize() : 크기 조절

size() : 원소의 개수 return

empty() : 비어있는지 확인

 

 

아래는 사용 예시이다.

#include <iostream>
#include <deque>

using namespace std;

int main() {
    // 덱 생성
    deque<int> myDeque;

    // 덱에 원소 추가
    myDeque.push_back(1);
    myDeque.push_back(2);
    myDeque.push_front(0);
    myDeque.push_front(-1);

    // 덱의 크기 출력
    cout << "Deque size: " << myDeque.size() << endl;

    // 덱의 원소 출력
    cout << "Deque elements: ";
    for (const auto& elem : myDeque) {
        std::cout << elem << " ";
    }
    cout <<"\n";

    // 덱의 앞과 뒤에서 원소 제거
    myDeque.pop_front();
    myDeque.pop_back();

    // 변경된 덱의 크기와 원소 출력
    cout << "Updated deque size: " << myDeque.size() << "\n";
    cout << "Updated deque elements: ";
    for (const auto& elem : myDeque) {
        cout << elem << " ";
    }
    cout << "\n";

    return 0;
}
728x90

'Data_structure' 카테고리의 다른 글

(Data_Structure) Priority Queue  (1) 2023.12.07
(Data_Structure) Vector  (2) 2023.12.07
(Data_structure) Queue  (1) 2023.12.07
(Data_Structure) BFS (Breadth-First Search)  (1) 2023.12.07
(Data_Structure) DFS (Depth-First Search)  (0) 2023.12.07