C++로 덱 구현

< 배열로 덱 구현 >

 

#include <iostream>

const int MX = 1000005;
int dat[2 * MX + 1];
int head = MX, tail = MX;

void push_front(int x) {
	head--;
	dat[head] = x;
}

void push_back(int x) {
	dat[tail] = x;
	tail++;
}

void pop_front() {
	head++;
}

void pop_back() {
	tail--;
}

int front() {
	return dat[head];
}

int back() {
	return dat[tail - 1];
}

void test() {
	push_back(30); // 30
	std::cout << front() << '\n'; // 30
	std::cout << back() << '\n'; // 30
	push_front(25); // 25 30
	push_back(12); // 25 30 12
	std::cout << back() << '\n'; // 12
	push_back(62); // 25 30 12 62
	pop_front(); // 30 12 62
	std::cout << front() << '\n'; // 30
	pop_front(); // 12 62
	std::cout << back() << '\n'; // 62
}

int main()
{
	test();
}

 


< 참고 자료 >

 

https://blog.encrypted.gg/935

 

[실전 알고리즘] 0x07강 - 덱

안녕하세요, 오늘도 반갑습니다. 스택과 큐에 이어 이번에는 덱을 다루겠습니다. 목차가 0x02만 바뀌고 계속 똑같습니다. 한 번 눈으로 슥 훑고 넘어가겠습니다. 덱은 Restricted Structure의 끝판왕과

blog.encrypted.gg

 

'CS > C++' 카테고리의 다른 글

[C++] Vector VS List  (0) 2023.07.20
C++ Deque VS Vector  (0) 2023.07.12
C++로 큐 구현  (0) 2023.07.11
C++로 스택 구현 / STL stack  (0) 2023.07.11
vector 관련 정리  (0) 2023.07.10