본문 바로가기

Programming/Data Structure

자료구조 · C++로 구현한 덱 덱 (Deque) 덱은 Double-Ended Queue의 약자이며, 양쪽에서 원소의 삽입과 삭제가 가능한 선형 자료구조이다.큐와 스택을 합친 형태라고 생각하면 된다. 원형 큐(Circular Queue)와 비슷하게 구현하므로, 이전 글을 참조. 한쪽에 push 하고 같은 쪽에서 pop 하면, 스택처럼 사용할 수 있다.한쪽에 push 하고 반대쪽에서 pop 하면, 큐처럼 사용할 수 있다. Deque C++ 구현 소스코드 #include using namespace std; const int MAX = 1e5; class Deque { private: int data[MAX]; int index_front; int index_back; public: Deque(); bool empty(); void pus..
자료구조 · C++로 구현한 스택 스택 (Stack) 스택은 후입선출(LIFO; Last in First out) 방식의 선형 자료구조이다.후입선출이란, 나중에 들어간 것이 먼저 나온다는 뜻이다. 즉, 스택은 나중에 들어간 데이터를 먼저 처리하는 자료구조이다. Stack C++ 구현 소스코드 #include using namespace std; const int MAX = 1e5; class Stack { private: int data[MAX]; int index; public: Stack(); bool empty(); void push(int x); void pop(); int top(); int size(); }; Stack::Stack() { index = -1; } bool Stack::empty() { return index ..
자료구조 · C++로 구현한 큐 큐 (Queue) 큐는 선입선출(FIFO; First in First out) 방식의 선형 자료구조이다. 선입선출이란, 먼저 들어간 것이 먼저 나온다는 뜻이다. 즉, 큐는 먼저 들어간 데이터를 먼저 처리하는 자료구조이다. Queue C++ 구현 소스코드 #include using namespace std; const int MAX = 1e5; class Queue { private: int data[MAX]; int index_front; int index_back; public: Queue(); bool empty(); void push(int x); void pop(); int front(); int back(); int size(); }; Queue::Queue() { index_front = 0;..