IT

c 언어로 구현한 스택

Bestpgm 2023. 3. 6. 18:39

#include <stdio.h>
#include <stdlib.h>

#define MAX_SIZE 100

int stack[MAX_SIZE];
int top = -1;

void push(int value) {
    if (top >= MAX_SIZE - 1) {
        printf("Stack overflow\n");
        return;
    }
    stack[++top] = value;
}

int pop() {
    if (top < 0) {
        printf("Stack underflow\n");
        return -1;
    }
    return stack[top--];
}

int peek() {
    if (top < 0) {
        printf("Stack is empty\n");
        return -1;
    }
    return stack[top];
}

void display() {
    if (top < 0) {
        printf("Stack is empty\n");
        return;
    }
    printf("Stack: ");
    for (int i = 0; i <= top; i++) {
        printf("%d ", stack[i]);
    }
    printf("\n");
}

int main() {
    push(10);
    push(20);
    push(30);
    display();
    printf("Popped %d from stack\n", pop());
    printf("Popped %d from stack\n", pop());
    display();
    push(40);
    display();
    printf("Top element is %d\n", peek());
    return 0;
}

위 코드에서 push 함수는 스택에 새로운 값을 추가하고, pop 함수는 스택에서 값을 제거합니다. peek 함수는 스택의 맨 위에 있는 값을 반환합니다. display 함수는 스택에 있는 모든 값을 출력합니다. 이를 이용해 스택을 구현하고 사용할 수 있습니다.