728x90
반응형
SMALL
Queue의 특징
- 맨 앞(front)에서 자료를 꺼내거나 삭제하고 맨 뒤(rear)에서 자료를 추가합니다.
- First In First Out (선입선출) 구조입니다.
- 일상생활에서 일렬로 줄 서 있는 모양을 생각하면 이해하기 쉽습니다.
- 순차적으로 입력된 자료를 순서대로 처리하는데 많이 사용되는 자료구조입니다.
- 콜센터에 들어온 문의 전화, 메시지 큐 등에 활용됩니다.
- jdk 클래스: ArrayList
연결 리스트를 활용하여 Queue 구현하기
MyLinkedQueue.java
import ch38.MyLinkedList;
import ch38.MyListNode;
interface Queue {
public void enQueue(String data);
public String deQueue();
public void printQueue();
}
public class MyLinkedQueue extends MyLinkedList implements Queue {
MyListNode front;
MyListNode rear;
@Override
public void enQueue(String data) {
MyListNode newNode;
if(isEmpty()) {
// 비어있는 큐에 맨 처읆으로 들어가는 경우
newNode = addElement(data);
front = newNode;
rear = newNode;
}
else {
// 맨 뒤로 들어가는 경우
newNode = addElement(data);
rear = newNode;
}
System.out.println(newNode.getData() + " added");
}
@Override
public String deQueue() {
if(isEmpty()) {
return null;
}
String data = front.getData();
front = front.next;
if(front == null) { // 마지막 항목이라는 의미
rear = null;
}
return data;
}
@Override
public void printQueue() {
printAll();
}
}
MyListQueueTest.java
public class MyListQueueTest {
public static void main(String[] args) {
MyLinkedQueue listQueue = new MyLinkedQueue();
listQueue.enQueue("A");
listQueue.enQueue("B");
listQueue.enQueue("C");
listQueue.printAll();
System.out.println(listQueue.deQueue());
System.out.println(listQueue.deQueue());
}
}
출력 결과
Aadded
Badded
Cadded
A->B->C
A
B
728x90
반응형
LIST
'Java' 카테고리의 다른 글
[JAVA] 자바 - <T extends 클래스> 사용하기 (0) | 2022.01.10 |
---|---|
[JAVA] 자바 - 무엇이든 담을 수 있는 제네릭(Generic) 프로그래밍 (0) | 2022.01.05 |
[JAVA] 자바 - 스택(Stack) 구현하기 (0) | 2022.01.05 |
[JAVA] 자바 - 연결리스트(LinkedList) 구현하기 (0) | 2022.01.04 |
[JAVA] 자바 - 배열 구현하기 (0) | 2022.01.04 |
댓글