[자료구조]스택

Smile:)today·2023년 11월 29일

자료구조

목록 보기
1/1

스택이란?

프링글스처럼 쌓여져 있는 과자같이 쌓여있는 모든 것들이 스택의 예시라고 생각할 수 있다.

특징: LIFO(Last In First Out)

"가장 늦게 들어온 게 가장 빨리 나갈 수 있다"

쓰임

"뒤로가기"버튼을 누를 때 이전 페이지로 가는 것

스택 ADT

연산기능
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);
}
profile
Hi, I'm vitamin

0개의 댓글