// stack
// definition : 항아리, 먼저 들어간 놈이 바닥에 있어서, 나중에 나오게 되는 것
#include<stdio.h>
#define MAXSIZE 5
int stack[MAXSIZE] = {0};
int top = 0;
void input(int k);
void output();
void view();
int main(){
// input, output, view
int n, k;
top = 0;
while(1) { // while(1) < 0이 아닌 수를 넣으면 참으로 인식되서 무한 루프를 돌림
printf("1:input, 2:output, 3:view\n");
scanf("%d", &n); // 메뉴 선택을 위한 n변수
switch(n){
case 1:
printf("type your data : ");
scanf("%d", &k); // 추가할 값
input(k); // 함수
break;
case 2:
output();
break;
case 3:
view();
break;
default:
printf("menu error:D\n");
}
}
}
void input(int k){
if(top==MAXSIZE) {
printf("Stack is Full\n");
return ;
}
stack[top] = k;
top++;
}
void output(){
if(top==0) {
printf("Stack is Empty\n");
return ;
}
top--;
printf("output data is %d\n", stack[top]);
stack[top] = 0;
}
void view(){
int i;
for(i=MAXSIZE-1; i>=0; i--) { // stack의 모양처럼 보이게 하기 위해서 거꾸로 함
printf("%d > %d\n", i, stack[i]);
}
}