반응형
구조
큐(queue)는 컴퓨터 과학 분야에서 쓰이는 컴퓨터의 기본적인 자료 구조의 한가지다.
먼저 집어 넣은 데이터가 먼저 나오는 FIFO(First In First Out)구조로 되어 있다.
나중에 집어 넣은 데이터가 먼저 나오는 스택과는 반대되는 개념이다.
자료를 넣는 것을 푸쉬(push)라고 하고 반대로 넣어둔 자료를 꺼내는 것을 팝(pop)이라고 하는데,
이때 꺼내지는 자료는 스택과 달리 가장 먼저 푸쉬한 자료부터 나오게 된다.
구현 코드
import java.util.Scanner;
public class Main {
static class Queue {
private int front = 0;
private int rear = 0;
private int size = 0;
private int[] arr = new int[100];
public Queue(int size) {
this.create(size);
}
public Queue() {
this.create(10);
}
public void create(int size) {
this.size = size;
this.front = 0;
this.rear = 0;
}
public void push(int number) {
if (size <= rear) {
System.out.println("Overflow");
} else {
arr[rear++] = number;
}
}
public void pop() {
if (rear <= front) {
System.out.println("Underflow");
} else {
arr[front++] = 0;
}
}
public int front() {
if (rear <= front) {
return -1;
} else {
return arr[front];
}
}
public int size() {
return rear - front;
}
}
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int size = scan.nextInt();
Queue q = new Queue(size);
int loopCnt = scan.nextInt();
for (int i = 0; i < loopCnt; i++) {
int op = scan.nextInt();
int number = 0;
switch (op) {
case 1:
number = scan.nextInt();
q.push(number);
break;
case 2:
q.pop();
break;
case 3:
number = q.front();
if (number < 0) System.out.println("NULL");
else System.out.println(number);
break;
}
}
}
}
참고 문서
큐 (자료 구조) - 위키백과, 우리 모두의 백과사전 - https://ko.wikipedia.org/wiki/큐_(자료_구조)
반응형