자료구조와 알고리즘/기초

[자료 구조] 스택

최문경 블로그 2019. 7. 29. 19:17
스택(stack)은 자료 구조의 하나로서 데이터를 1열로 나열하지만, 서류를 쌓아 놓은 경우처럼 새롭게 추가한 데이터에만 접근할 수 있습니다. 새로운 서류가 도착하면 현재 서류 더미의 가장 위에 올려두고 서류를 꺼낼 때는 가장 위에서부터 꺼내는 것과 같습니다. - 책 알고리즘 도감

 

스택의 개념도

 

스택에 데이터를 추가하는 작업을 푸시(push)라고 합니다.

'Green'이라는 데이터가 추가되었습니다.
'Red'를 푸시하였습니다.

 

 

 

스택에서 데이터를 꺼내는 경우 가장 위, 즉 가장 최근에 추가된 데이터부터 꺼냅니다. 여기서는 'Red'가 꺼내집니다. 다시 팝(pop)을 하면 이번에는 'Green'이 꺼내집니다.

pop을 두 번해서 'Red'와 'Green'이 순서대로 꺼내졌습니다.

 

스택처럼 나중에 넣은 것을 먼저 꺼내는 후입선출 구조를 'Last in First Out'이라고 하며, 앞글자만 따서 'LIFO'라고도 합니다. 

 

리스트나 배열과 마찬가지로 스택도 데이터를 1열로 나열한 것이지만, 데이터 추가나 삭제가 단방향으로만 가능하다는 제약이 있습니다. 또한, 데이터 접근도 스택의 가장 위에 있는 데이터만 가능합니다. 중간에 있는 데이터가 필요하다면 해당 데이터가 제일 위에 올 때까지 데이터를 팝(pop)해야 합니다.

 

참고 - 책 알고리즘 도감

'자료구조와 알고리즘 > 기초' 카테고리의 다른 글

[자료 구조] 해시 테이블  (0) 2019.07.30
[자료 구조] 큐  (0) 2019.07.30
[자료 구조] 배열  (0) 2019.07.29
[자료 구조] 리스트  (0) 2019.07.29
[자료 구조] 자료 구조(data structure)란?  (0) 2019.07.29