본문 바로가기
Algorithm/바킹독의 알고리즘 강의

by IT learning 2021. 4. 14.
728x90

덱은 Restricted Structure의 끝판왕 같은 느낌의 자료구조 인데, 양쪽 끝에서 삽입과 삭제가 전부 가능하다.

참고로 자료구조에서의 덱은 deque고, Doble Ended Queue라는 뜻이다.

 

덱의 성질

1. 원소의 추가/ 제거 O(1)

2. 제일 앞/뒤의 원소확인 O(1)

3. 제일 앞/뒤가 아닌 나머지 원소들의 확인/변경이 원칙적으로 불가능

하지만 특이하게도 STL deque에서는 인덱스로 원소에 접근할 수 있다.

#include <iostream>
#include <deque>
using namespace std;

int main() {
	deque<int> dq;
    dq.push_back(1);
    dq.push_back(2);
    
    for(int i = 0; i < dq.size(); i++) {
    	cout << dq[i] << ' ';
    }
    cout << endl;
}

이렇게 사용이 가능하다는 뜻이다.

기존에 큐나 스택은 인덱스로 원소에 접근이 불가능하다.

큐에서는 앞에서는 빼는거만 가능하고 뒤에서는 더하는것만 가능했지만, 덱에서는 front 와 back으로 앞 뒤를 구분하고 둘 다 빼고 넣는 것이 가능하다.

728x90

'Algorithm > 바킹독의 알고리즘 강의' 카테고리의 다른 글

  (0) 2021.04.12
스택  (0) 2021.04.12
연결 리스트 손코딩 문제들  (0) 2021.04.12
연결 리스트  (0) 2021.04.10
배열에 0 채우기 좋은 방법  (0) 2021.04.09

댓글

IT_learning's Commit