자료구조

스택

Hufs.Woong 2024. 7. 17. 14:26

스택은 선형 list에서 자료의 삽입, 제거를 한쪽 끝에서만 이루어지도록 제한한 자료구조이다.

가장 나중에 입력된 자료가 가장 먼저 출력되는 방식이다.

 

 

스택을 코드로 구현해보겠다.

 

먼저 스택의 max 크기와 data_type을 정해준 뒤 어디까지 쌓았는지를 나타내주는 변수 Top을 -1로 설정해준다. (아직 아무것도 넣지 않았기 때문)

 

그 다음 스택이 비어있는지, 모두 차있는지를 확인하는 Empty함수와 Full함수를 구현한다.

 

스택에 값을넣는 Push함수와 스택에서 값을 빼는 Pop함수를 구현한다.

Push때 스택이 모두 차있으면 overflow를 출력하고 아니면 값을 넣는다.

Pop때 스택이 모두 비어있으면 underflow를 출력하고 아니면 값을 꺼낸다.

 

 

위에 코드에서는 차례대로 스택에 1,2,3을 넣고 Pop()호출시 스택의 맨 위에 있는 값인 3이 빠져나갈 것이다. 그 다음 다시 4를 넣고 Pop()결과를 출력하면 위에서부터 차례대로 4,2,1이 출력되고 마지막 Pop()호출 시 스택에는 값이 없으므로 Underflow가 출력될 것이다.