[자료구죠]_Queue

김예인·2023년 5월 18일

백엔드 공부일지

목록 보기
26/43


Queue

입구와 출구가 모두 뚫려있어, 데이터가 들어온 순서대로 빠져나가는 선입선출 자료구조

  • FIFO(First In First Out) / LILO(Last In Last Out)
  • Queue에 데이터를 넣는 것을 'enqueue', 데이터를 꺼내는 것을 'dequeue'
  • 데이터(data)가 입력된 순서대로 처리할 때 주로 사용
  • 데이터는 하나씩 넣고 뺄 수 있음
  • 두 개의 입출력 방향

🍊 장점

  • 선입선출 자료구조로, 순서가 중요한 경우에 유용 (프린터, 은행대기, 채팅 메시지)
  • 중간 원소 삭제, 추가 연산이 없어, 연산 속도가 빠름
  • 자바에서 큐를 기본 자료구조로 제공

🍋 단점

  • 중간 데이터 조회와 수정 연산에는 부적합
  • 크기 제한이 없어 메모리 낭비 발생 가능
  • iterator() 메서드 지원 불가 (선입선출 구조기 때문)
  • remove(Object o) 메서드의 동작이 불명확

💻 코드 예시

Queue<Integer> queue = new LinkedList<>(); //int형 queue 선언

queue.add(1);     // queue에 값 1 추가
queue.add(2);     // queue에 값 2 추가
queue.add(3);     // queue에 값 3 추가
// 1 <- 2 <- 3

queue.poll();       // queue에 첫번째 값을 반환하고 제거
queue.poll();
queue.poll();
// 1, 2, 3
profile
백엔드 개발자 김예인입니다.

0개의 댓글