자료구조

Bryan Lee 2022. 4. 23. 00:12

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