c 언어로 구현한 스택
#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 함수는 스택에 있는 모든 값을 출력합니다. 이를 이용해 스택을 구현하고 사용할 수 있습니다.