개념 설명

오늘은 스택과 큐에 대하여 알아볼거야.

다들 스택과 큐는 자료에 저장한 순서와 저장된 자료를 꺼내는 순서를 제어하기 위해서 쓰는 자료구조라고 생각하면 돼.

쉽게 말하자면, 우리가 흔히 아는 선입선출(FIFO)와 후입선출(LIFO)의 개념이야.

스택은 나중에 들어온 값이 먼너 나오는 후입선출(Last In First Out)의 로직을 구현할 때 사용하고,

큐는 먼저 들어온 값이 먼저 나오는 선입선출(First In Firsst Out)의 로직을 구현할 때 사용해.

스택(Stack)

아까 스택은 후입선출의 개념으로 이해하면 된다고 했지?

서점에 쌓여있는 책이라 생각하면 돼.

우리가 집는 책은 쌓여있는 책 중에서 가장 최근에 들어온 책이지?

스택도 마찬가지로 값을 꺼낼 때 마지막에 들어온 값이 나온다고 생각해야해.

영어로 stack은 더미를 의미해…!

버*킹의 더블스태커 버거도 2배로 쌓아준 버거라는 의미지!

더미에서는 아래꺼부터 꺼낼 수 있는게 아니니까 후입 선출이라고 이해하면 조금 쉬울거야.

스택의 호출

Java에서는 java.util.stack을 import 해서 스택을 사용할 수 있어.

선언은 아래와 같이 하면 돼.

import java.util.Stack;

public static void main(String[] args) {
    Stack<String> stack = new Stack<>();
}

스택을 선언할 때는 가급적이면 Generic type도 들어갈 객체에 맞게 선언해 주는 것이 좋아.