[자료구조] 스택(Stack)

스택이란? 후입선출(Last-Input, First-Out LIFO)구조를 가진 자료구조

 



 

 

위 그림처럼 가장 마지막에 들어온 것이 가장 먼저 나갑니다. 이 그림을 보셨으면 스택이 어떤 구조인지는 이해가 되실 것입니다.

 

그럼 이제 스택의 용어에 대해 좀 더 자세히 알아봅시다!

 

스택의 용어에는

- Top

- Bottom

- Push

- Pop

- Peek


- Stack Underflow

- Stack Overflow

 

가 있습니다.

 

우선 TopBottom을 이해해봅시다!

 

영어단어를 해석해보면 다들 금방 이해하실 수 있으실 겁니다.

 

 

 

Top은 말그대로 스택의 맨 위를 의미합니다.

Bottom스택의 바닥을 의미하구요.

 

스택의 Top은 연산에 의해서 바뀔 수 있습니다. 하지만 바닥을 가르키고 있는 Bottom은 바뀌지 않습니다. 아래 그림처럼 말이죠.

 

 

 

이제 Push Pop Peek에 대해서 알아봅시다.

 

Push스택에 데이터를 넣는 것을 의미합니다.

 

 

 

보시다 시피 Push를 하면 Top이 하나 증가하고 데이터가 하나 추가됩니다.

 

이제 Pop에 대해 알아봅시다!

 

Pop스택에서 데이터를 하나 빼는 것을 의미합니다.

 

 

 

Pop은 보시다시피 Top이 하나 감소하고 데이터가 하나 감소합니다.

 

Peek는 스택에서 Top의 위치에 있는 데이터를 확인하는 것을 의미합니다.

Pop과 다르게 Top이나 데이터의 개수가 감소하지 않습니다!

 

이제 스택 언더플로우와 오버플로우에 대해 알아봅시다!

 

스택 언더플로우스택이 비어있을 때 Pop을 하는 경우에 발생합니다. 그 이유는 더이상 감소시킬 데이터가 없는데 감소시키려 하기 때문입니다.

 

이와 반대로 스택 오버플로우스택이 꽉차있을 때 Push를 하는 경우에 발생합니다. 그 이유는 더 이상 데이터가 추가될 공간이 없는데 추가를 하려했기 때문이죠.

 

 

 

 

이 것으로 스택에 대한 강의를 마칩니다.

 

'Computer Engineering > Data Structure' 카테고리의 다른 글

[자료구조] 그래프(Graph)  (0) 2016.02.04
[자료구조] 트리(Tree)  (0) 2016.02.04
[자료구조] 연결리스트(Linked List)  (0) 2016.02.04
[자료구조] 큐(Queue)  (0) 2016.02.04
[자료구조] 개념과 종류  (0) 2016.02.03
  Comments,     Trackbacks