반응형
#include <iostream>
#define MAX_SIZE 20
typedef int Element;
Element stack[MAX_SIZE];
int top;

void init(){
    top = -1;
}
int is_empty(){
    return (top == -1);
}
int is_full(){
    return (top == (MAX_SIZE - 1));
}

Element peek(){
    if (is_empty()){
        fprintf(stderr, "스택 공백 에러\n");
        exit(1);
    } else return stack[top];
}

void push(Element item){
    if (is_full()){
        fprintf(stderr, "스택 포화 에러\n");
        return;
    } else stack[++(top)] = item;
}

Element pop(){
    if (is_empty()){
        fprintf(stderr, "스택 공백 에러\n");
        exit(1);
    } else return stack[top--];
}
int main() {
    init();
    std::cout << "stack input value = ";
    for (int i = 0; i < 10; ++i) {
        std::cout << i * 5 << " ";
        push(i * 5);
    }
    std::cout << std::endl << "stack output value = ";
    for (int i = 0; i < 10; ++i) {
        std::cout << peek() << " ";
        pop();
    }

    return 0;
}

선입선출 방식의 스택 알고리즘을 C++로 구현

 

반응형

'알고리즘' 카테고리의 다른 글

C++ 큐 알고리즘 구현  (0) 2022.06.05