정보선생님 수아

스택 ( Stack ) 본문

C&C++/Algorithm

스택 ( Stack )

정보선생님 수아 :D 2020. 8. 26. 15:39

// 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]);
    }
}

'C&C++ > Algorithm' 카테고리의 다른 글

큐 ( Queue )  (0) 2020.08.26
GraphSourceCode  (0) 2020.08.25
Comments