스택, 큐_기본정리

UkJJang·2021년 9월 1일
0

큐의 기본정리

  • FIFO 구조 먼저 들어온 사람이 먼저 빠져 나간다. > 음식점을 줄을 생각하면 좋다.

  • Enqueue -> 큐에 데이터 삽입

  • Dequeue -> 큐에 데이터 내보내기

  • 큐는 멀티 태스킹 작업에 스케쥴링 작업에 많이 쓰임

큐 작성해보기

import java.util.ArrayList;

public class MyQueue<T> {

    private ArrayList<T> queue = new ArrayList<>();

    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> queue = new MyQueue<>();
        queue.enqueue(1);
        queue.enqueue(2);
        queue.dequeue();
    }

}

스택 기본 정리

  • 한쪽 끝에서만 넣고 뺄 수 있는 자료구조
  • LIFO 형식으로 마지막에 들어온 자료가 가장 먼저 나간다.
  • 데이터 넣기 : push / 데이터 빼기 : pop
  • 장점 : 구조가 단순해서 구현이 쉬움, 읽기 속도가 빠르다
  • 단점 : 데이터의 최대 개수를 미리 정해야함, 저장공간의 낭비가 있을 수 있다.

스택 작성해보기


import java.util.ArrayList;
import java.util.List;

public class MyStack<T> {

    List<T> stack = new ArrayList<>();

    public void push(T data) {
        stack.add(data);
    }

    public T pop() {
        if(stack.isEmpty()) {
            return null;
        }

        return stack.remove(stack.size() - 1);
        
    }

}
profile
꾸준하게 성실하게

0개의 댓글