스택(stack)은 데이터 구조의 하나로서 데이터를 1열로 나열하지만, 쌓아놓은 서류처럼 새롭게 추가한 데이터에만 접근할 수 있다. 새로운 서류가 도착하면 현재 서류 더미의 가장 위에 올려두고 서류를 꺼낼 때는 가장 위에서부터 꺼내는 것과 같다.
1
현재 스택에 'Blue'라는 데이터만 저장돼 있다.
2
여기에 'Green'이라는 데이터가 추가됐다.
3
'Red'라는 데이터를 또 푸시한다.
4
스택에서 데이터를 꺼내는 경우 가장 위, 즉 가장 최근에 추가된 데이터부터 꺼낸다. 여기서는 'Red'가 추출된다.
5
다시 팝을 하면 'Green'이 추출된다.
부연: 스택처럼 나중에 넣은 것을 먼저 꺼내는 후입선출 구조를 'Last In First Out'이라 하며 앞글자만 따 'LIFO'라고도 한다.
리스트나 배열과 마찬가지로 스택도 데이터를 1열로 나열한 것이지만 데이터 추가나 삭제가 단방향으로만 가능하다는 제약이 있다. 또, 데이터 접근도 스택의 가장 위에 있는 데이터만 가능하다. 중간에 있는 데이터가 필요하다면 해당 데이터가 제일 위에 올 때까지 데이터를 팝해야 한다.
오늘도 쉽다!
참고 서적: