class Node{
int data;
Node next;
int size;
public Node(int data) {
this.data = data;
this.next = null;
}
}public class queue {
int size;
Node front;
Node rear;
public queue() {
this.front = null;
this.rear = null;
this.size = 0;
}
public boolean isEmpty() {
return (size == 0);
}
public void enqueue(int data) {
Node newNode = new Node(data);
if (isEmpty()) {
front = newNode;
rear = newNode;
}else{
rear.next = newNode;
rear = newNode;
}
size++;
}
public int dequeue() {
if (isEmpty()) {
System.out.println("큐가 비어 있습니다.");
return -1;
}
int dequeuedValue = front.data;
front = front.next;
size--;
if (isEmpty()) {
rear = null;
}
return dequeuedValue;
}
public int peek() {
if (isEmpty()) {
System.out.println("큐가 비어있네?");
return -1;
}
return front.data;
}
public int size() {
return size;
}
public void printAll() {
if (isEmpty()) {
System.out.println("큐가 비어있다");
return;
}
Node current = front;
System.out.print("현재 큐 상태: ");
while (current != null) {
System.out.print(current.data + " ");
current = current.next;
}
System.out.println();
}
public static void main(String[] args) {
queue q = new queue();
q.enqueue(1);
q.enqueue(2);
q.enqueue(3);
q.enqueue(5);
q.printAll();
}
}