본문 바로가기

Algorithms/개념

ArrayList를 이용한 Queue구현 및 기본 개념 정리

오늘은 선형자료구조인 큐의 개념 및 arrayList를 통해서 queue을 간단히 구현 그리고 마지막으로 queue함수에는 어떤 것들이 있는 지 알아보는 시간을 가지려고 한다.

 

ㆍQueue의 개념

- 데이터를 차곡차곡 쌓아 올리는 형태의 자료구조

- " First In, First Out" (FIFO) : 가장 최근에 추가된 데이터가 가장 먼저 제거되는 원리

 

ㆍ큐의 구성

  1. Rear
    - 큐에 끝
  2. Front
    - 큐에 시작

ㆍArrayList로 Queue구현

import java.util.ArrayList;

public class QueueActive {
    ArrayList list;

    QueueActive() {
        list = new ArrayList();
    }

    public static void main(String[] args) {
        QueueActive queue = new QueueActive();
        queue.push(1);
        queue.push(3);
        queue.push(5);
        queue.push(2);
        queue.push(4);
        System.out.println(queue.peek());
        queue.printQueue();

        System.out.println(queue.pop());
        System.out.println(queue.pop());
        System.out.println(queue.peek());
        queue.printQueue();
    }

    private boolean isEmpty() {
        if (list.size() == 0) {
            return true;
        }
        return false;
    }

    private void push(int data) {
        list.add(0, data);
    }

    private Integer pop() {
        if (isEmpty()) {
            return null;
        }

        return (int)list.remove(list.size() - 1);
    }
    private Integer peek() {
        if (isEmpty()) {
            return null;
        }

        return (int)list.get(list.size() - 1);
    }
    private void printQueue() {
        System.out.println(list);
    }
}

 

ㆍQueue함수

  1. offer(E e)
    - 큐에 요소를 추가
  2. E poll()
    - 큐에서 가장 앞에 있는 요소를 제거하고 반환
  3. E peek()
    - 큐에서 가장 앞에 있는 요소를 반환
    - 제거 x
  4. int size()
    - 큐에 포함된 요소의 수를 반환
  5. boolean isEmpty()
    - 큐가 비어 있는지 여부를 확인
  6. void clear()
    - 큐의 모든 요소를 제거