스택(Stack)과 큐(Queue)

2021. 1. 23. 23:56
반응형

스택(Stack)과 큐(Queue) 란?

  • 기본 자료구조 중 하나이다.
  • 이 때, 자료구조란 데이터를 표현하고 관리하고 처리하기 위한 구조를 의미한다.
  • 스택과 큐 는 두 핵심적인 함수로 구성된다.
  1. 삽입(Push) : 데이터를 삽입한다.
  2. 삭제(Pop) : 데이터를 삭제한다.

스택(Stack)

  • 스택은 박스 쌓기에 비유가능하다.
  • 나중에 쌓아올린 박스가 제일 먼저 꺼낼 수 있다.
  • 후입선출(LIFO), 선입후출(FILO) 구조라고 한다.
    public static void main(String[] args) {

        Stack<Integer> stack = new Stack<Integer>();

        stack.push(1);  //스택에 1을 삽입
        stack.push(2);  //스택에 2를 삽입
        stack.push(3);  //스택에 3을 삽입

        stack.pop();        //스택에 제일 위에서 하나를 삭제(3을 삭제)
        stack.peek();       //스택에 제일 윗단에 있는 원소를 엿보기(2를 엿본다)

    }

큐(Queue)

  • 큐는 공항검색대에 비유가 가능하다.
  • 먼저들어간 사람이 먼저 나온다.
  • 선입선출(FIFO) 구조라고 한다.
    public static void main(String[] args) {

        Queue<Integer> queue = new LinkedList<>();

        queue.offer(1); //큐에 1을 삽입한다.
        queue.offer(2); //큐에 2를 삽입한다.
        queue.offer(3); //큐에 3을 삽입한다.
        
        Integer poll = queue.poll(); //큐에서 제일 왼쪽에 삽입된 원소를 삭제하고 반환(1을 반환)
        Integer peek = queue.peek(); //큐에서 제일 왼쪽에 삽입된 원소를 엿본다.(2을 엿봄)
        queue.remove();              //큐에서 제일 왼쪽에 삽입된 원소를 삭제한다.(1 삭제)
        
    }

 

반응형