Page 137 - Do it! 자료구조와 함께 배우는 알고리즘(C 언어, 3쇄)
P. 137
max 8 Pop(&s, &x); max 8
ptr 4 ptr 3
stk stk
0 19 0 19
1 22 1 22
2 37 2 37
3 53 ❸ 53
❹ 4
5 53을 팝 5
6 6
7 7
[그림 4-5] 스택에서 팝
피크 함수 Peek
Peek 함수는 스택 꼭대기의 데이터를 ‘몰래 엿보는’ 함수입니다. 피크에 성공하면 0을 반환
하고 스택이 비어 있으면 –1을 반환합니다. 스택이 비어 있지 않으면 꼭대기 요소 stk[ptr – 1]
의 값을 포인터 x가 가리키는 변수에 저장합니다. 또 데이터의 입력과 출력이 없으므로 스택
포인터는 변화하지 않습니다.
스택의 모든 요소를 삭제하는 함수 Clear
Clear 함수는 스택에 쌓여 있는 모든 데이터를 삭제하는 함수입니다.
스택에 대한 푸시와 팝 등 모든 작업은 스택 포인터를 바탕으로 이루어집니다. 따라서 스택의 배열 요솟값을 변경할 필요
가 없습니다. 모든 요소의 삭제는 스택 포인터 ptr 값을 0으로 하면 끝납니다.
실습 4-2[C] •완성 파일 chap04/IntStack.c
01 /*--- 스택 용량 ---*/
02 int Capacity(const IntStack *s)
03 {
04 return s->max;
05 }
06
07 /*--- 스택에 쌓여 있는 데이터 수 ---*/
08 int Size(const IntStack *s)
09 {
10 return s->ptr;
11 }
12
13 /*--- 스택이 비어 있는가? ---*/
14 int IsEmpty(const IntStack *s)
15 {
16 return s->ptr <= 0;
04•스택과 큐 137