반응형
#include <iostream>
#define MAX_SIZE 100
typedef int Element;
Element queue[MAX_SIZE];
int front;
int rear;
void init_queue(){
front = rear = 0;
}
int is_empty(){
return front == rear;
}
int is_full(){
return (rear + 1) % MAX_SIZE == front;
}
int size(){
return (rear - front + MAX_SIZE) % MAX_SIZE;
}
void print_queue(){
std::cout << "queue[" << size() << "] = ";
int i = (front + 1) % MAX_SIZE;
for (; i != (rear + 1) % MAX_SIZE; i = (i + 1) % MAX_SIZE) {
std::cout << queue[i] << " ";
}
std::cout << std::endl;
}
void push(Element val){
if (is_full()){
fprintf(stderr, "큐 포화 에러\n");
exit(0);
}
rear = (rear + 1) % MAX_SIZE;
queue[rear] = val;
}
Element pop(){
if (is_empty()){
fprintf(stderr, "큐 공백 에러\n");
exit(0);
}
front = (front + 1) % MAX_SIZE;
return queue[front];
}
Element peek(){
if (is_empty()){
fprintf(stderr, "큐 공백 에러\n");
exit(0);
}
return queue[(front + 1) % MAX_SIZE];
}
int main() {
int i;
init_queue();
for (i; i < 10; i++) {
push(i * 5);
}
print_queue();
std::cout << "\tpop() --> " << pop() << std::endl;
std::cout << "\tpop() --> " << pop() << std::endl;
std::cout << "\tpop() --> " << pop() << std::endl;
print_queue();
return 0;
}
선입선출 방식의 큐 알고리즘을 구현
반응형
'알고리즘' 카테고리의 다른 글
C++ 스택 알고리즘 구현 (0) | 2022.06.05 |
---|
최근댓글