나중에 넣은 것이 가장 먼저 나오는 것을 후입 선출이라 하고, 이런 자료 구조를 스택(Stack)이라 한다.
다음과 같은 1, 2, 3 이름표가 붙은 블럭이 있다고 가정하자.
이 블럭을 다음과 같이 생긴 통에 넣는다고 생각해보자. 위쪽만 열려있기 때문에 위쪽으로 블럭을 넣고, 위쪽으로 블럭을 빼야 한다. 쉽게 이야기해서 넣는 곳과 빼는 곳이 같다.
블럭은 1 → 2 → 3
순서대로 넣을 수 있다.
이번에는 넣은 블럭을 빼자.
블럭을 빼려면 위에서부터 순서대로 빼야한다.
블럭은 3 → 2 → 1
순서로 뺄 수 있다.
정리하면 다음과 같다.
1(넣기) → 2(넣기) → 3(넣기) → 3(빼기) → 2(빼기) → 1(빼기)
가장 먼저 넣은 것이 가장 먼저 나오는 것을 선입 선출이라 한다. 이런 자료 구조를 큐(Queue)라 한다.
정리하면 다음과 같다.
1(넣기) → 2(넣기) → 3(넣기) → 1(빼기) → 2(빼기) → 3(빼기)