반응형
출처: jungol.co.kr/bbs/board.php?bo_table=pbank&wr_id=3050&sca=99&page=24
Approach
Queue 자료구조를 구현하는 문제
#ifndef NULL
#define NULL 0
#endif
const int SIZE = 100010;
struct Node {
int num;
Node* next;
Node() {
num = 0, next = NULL;
}
Node(int ni, Node* np) {
num = ni, next = np;
}
~Node() {
delete next;
}
void erase(Node*& ref) {
ref = next;
next = NULL;
delete this;
}
}buf[SIZE];
int bcnt;
struct Queue {
Node*head, *tail;
int cnt;
Queue() {
head = tail = new Node();
cnt = 0;
}
~Queue() {
cnt = 0;
delete head;
head = tail = NULL;
}
bool empty() { return cnt == 0; }
int size() { return cnt; }
int front() { return head->next->num; }
int back() { return tail->num; }
void push(int num) {
cnt++;
tail->next = new Node(num, NULL);
tail = tail->next;
}
void pop() {
if (cnt == 0) return;
cnt--;
head->erase(head);
}
}que;
Queue* newQueue() {
return new Queue();
}
void delQueue(Queue*que) {
delete que;
}
bool empty(Queue*que) {
return que->empty();
}
int size(Queue*que) {
return que->size();
}
int front(Queue*que) {
return que->front();
}
int back(Queue*que) {
return que->back();
}
void push(Queue*que, int num) {
return que->push(num);
}
void pop(Queue*que) {
return que->pop();
}
반응형
'PS 문제 풀이 > Jungol' 카테고리의 다른 글
[Jungol] 정올 1814 삽입정렬 횟수 세기 (0) | 2021.03.18 |
---|---|
[Jungol] 정올 3690 stack api (0) | 2021.03.18 |
[Jungol] 정올 1102 스택(stack) (0) | 2021.03.18 |
[Jungol] 정올 3293 비트연산 1 (0) | 2021.03.18 |
[Jungol] 정올 3101 요세푸스 문제 1 (0) | 2021.03.18 |
댓글