프링글스처럼 쌓여져 있는 과자같이 쌓여있는 모든 것들이 스택의 예시라고 생각할 수 있다.
"가장 늦게 들어온 게 가장 빨리 나갈 수 있다"
"뒤로가기"버튼을 누를 때 이전 페이지로 가는 것
| 연산 | 기능 |
|---|---|
| push | 스택의 맨 위에 데이터 추가 |
| pop | 스택의 맨 위 데이터 빼기 |
| is_empty | 스택이 비어있는지 |
| is_full | 스택이 다 찼는지 |
int stack[MAX_STACK_SIZE];
int top = -1; // 스택 처음 top 인덱스
void push(int data)
{
if(top >= MAX_STACK_SIZE - 1){
printf("Stack is full!");
return
}
stack[++top] = data; //스택 뚜껑 하나 증가시킨 후의 인덱스
}
int pop(){
if(top == -1){
printf("Stack is empty!);
}
return stack[top--] //스택의 가장 최신 자료를 반환
int is_empty(){
if(top < 0)
return(1);
else
return(0);
}
int is_full(){
if(top >= MAX_STACK_SIZE - 1)
return(1);
else
return(0);
}