Page 138 - Do it! 자료구조와 함께 배우는 알고리즘(C 언어, 3쇄)
P. 138
17 }
18
19 /*--- 스택은 가득 찼는가? ---*/
20 int IsFull(const IntStack *s)
21 {
22 return s->ptr >= s->max;
23 }
24
25 /*--- 스택에서 검색 ---*/
26 int Search(const IntStack *s, int x)
27 {
28 int i;
29 for(i = s->ptr - 1; i >= 0; i--) /* 꼭대기(top) → 바닥(bottom)으로 선형 검색 */
30 if(s->stk[i] == x)
31 return i; /* 검색 성공 */
32 return -1; /* 검색 실패 */
33 }
34
35 /*--- 모든 데이터 출력 ---*/
36 void Print(const IntStack *s)
37 {
38 int i;
39 for(i = 0; i < s->ptr; i++) /* 바닥(bottom) → 꼭대기(top)로 스캔 */
40 printf("%d ", s->stk[i]);
41 putchar( '\n');
42 }
43
44 /*--- 스택 종료 ---*/
45 void Terminate(IntStack *s)
46 {
47 if(s->stk != NULL)
48 free(s->stk); /* 배열을 삭제 */
49 s->max = s->ptr = 0;
50 }
용량을 확인하는 함수 Capacity
Capacity 함수는 스택의 용량(멤버 max의 값)을 반환하는 함수입니다.
138 C 알고리즘