1) 큐의 특징
- 큐는 프로그래밍에서 가장 많이 쓰이는 자료구조 중 하나임
- 큐의 구조는 굉장히 단순함
-> FIFO라는 정책을 쓰는 자료구조
-> FIFO는 First In, First Out의 약자임
2) 큐의 메소드
- enqueue: 큐에 데이터를 넣는 기능
- dequeue: 큐에서 데이터를 빼는 기능
3) 큐 구현 예시
- Queue 클래스의 데이터 생성을 위해서는 java.util 패키지의 LinkedList 클래스를 사용해야 함
import java.util.LinkedList;
import java.util.Queue;
Queue<Integer> queue_int = new LinkedList<Integer>();
Queue<String> queue_str = new LinkedList<String>();
// 추가
queue_int.add(1);
// 추가
queue_int.offer(2);
// 제거
queue_int.poll();
// 제거
queue_int.remove();
4) Java ArrayList 클래스를 활용해서 큐를 다루는 enqueue, dequeue 기능 구현해보기
import java.util.ArrayList;
public class MyQueue<T>{
private ArrayList<T> queue = new ArrayList<T>();
public void enqueue(T item){
queue.add(item);
}
public T dequeue(){
if(queue.isEmpty()){
return null;
}
return queue.remove(0);
}
public boolean isEmpty(){
return queue.isEmpty();
}
public static void main(String[] args){
MyQueue<Integer> mq = new MyQueue<Integer>();
mq.enqueue(1);
mq.enqueue(2);
mq.enqueue(3);
System.out.println(mq.dequeue());
System.out.println(mq.dequeue());
System.out.println(mq.dequeue());
}
}
참고
- 한 번에 끝내는 코딩테스트 369 Java편 초격차 패키지 Online편
'자료구조' 카테고리의 다른 글
링크드 리스트(3) - 더블 링크드 리스트 (2) | 2022.04.28 |
---|---|
링크드 리스트(2) (0) | 2022.04.26 |
링크드 리스트(1) (0) | 2022.04.24 |
스택 (1) | 2022.04.23 |
배열 (2) | 2022.04.22 |