www.youtube.com/watch?v=W3jNbNGyjMs
선입선출 방식(First-In First-Out, FIFO)
1) add()
2) remove()
3) peek()
4) isEmpty()
import java.util.NoSuchElementException;
class Queue<T>{
class Node<T>{
private T data;
private Node<T> next;
public Node(T data){
this.data = data;
}
}
private Node<T> first;
private Node<T> last;
public void add(T item){
Node<T> t = new Node<T>(item);
if(last != null){
last.next = t;
}
last = t;
//큐가 비어있을 때
if(first == null){
first = last;
}
}
public T remove(){
if(first == null)
throw new NoSuchElementException();
T data = first.data;
first = first.next;
if(first == null)
last = null;
return data;
}
public T peek(){
if(first == null)
throw new NoSuchElementException();
return first.data;
}
public boolean isEmpty(){
return first == null;
}
}
public class Main{
public static void main(String[] args){
Queue<Integer> queue = new Queue<Integer>();
q.add(1);
q.add(2);
q.add(3);
q.add(4);
System.out.println(q.remove());
System.out.println(q.remove());
System.out.println(q.peek());
System.out.println(q.remove());
System.out.println(q.isEmpty());
System.out.println(q.remove());
System.out.println(q.isEmpty());
}
}
'Preparing Coding Test > Algorithm' 카테고리의 다른 글
우선순위 큐(Priority Queue) (0) | 2020.11.24 |
---|---|
다이나믹 프로그래밍 (Dynamic Programming) (0) | 2020.09.25 |
[Java/자료구조] Stack 구현하기 (0) | 2020.09.03 |
[자료구조/Java] 해시 테이블 (Hash Table) (0) | 2020.08.26 |
[자료구조/C, Java] 계수 정렬(Counting Sort) (0) | 2020.08.20 |