without haste but without rest
[C / 자료구조] 3주차 실습문제 - 전역변수 스택 본문
전역변수를 사용하는 스택
#include <stdio.h>
#include <stdlib.h>
#define MAX_SIZE 5
/*
전역 변수를 사용하는 배열 스택
단점
1. 전역 변수를 많이 사용한다.
해결 방법
1. 구조체를 활용해서 전역 변수 사용을 줄인다.
*/
typedef int element; // element is data tpye of stack, it is easy to adjust code
element stack[MAX_SIZE];
int top = -1;
int is_full();
int is_empty();
void push(element item);
element pop();
element peek();
int main(void) {
for (int i = 1; i <= 6; i++) {
push(i*i);
}
printf("peek: %d\n", peek());
for (int i = 0; i <= 6; i++) {
printf("pop: %d\n", pop());
}
}
int is_full() {
return (top >= (MAX_SIZE - 1));
}
int is_empty() {
return (top == -1);
}
void push(element item) {
if (is_full()) {
fprintf(stderr, "Stack Overflow\n");
return;
}
stack[++top] = item;
}
element pop() {
if (is_empty()) {
fprintf(stderr, "Stack Underflow\n");
exit(1);
}
return stack[top--];
}
element peek() {
if (is_empty()) {
fprintf(stderr, "Stack Underflow\n");
exit(1);
}
return stack[top];
}
'Homework' 카테고리의 다른 글
[C / 자료구조] 3주차 실습문제 - 동적 배열 스택 (0) | 2020.04.04 |
---|---|
[C / 자료구조] 3주차 실습문제 - 구조체 배열 스택 (0) | 2020.04.04 |
[C / 자료구조] 2주차 과제 - ADT 구현, 사각형 문제 (0) | 2020.04.04 |
[C / 자료구조] 1주차 과제 - 하노이 탑 (0) | 2020.04.04 |
[C / 자료구조] 1주차 과제 - 재귀 (0) | 2020.04.04 |
Comments