알고리즘 - 스택

김혜진·2022년 9월 23일
0

알고리즘

목록 보기
12/13

스택

스택이란

  • 스택은 LIFO(Last In First Out)의 원리로 동작하는 선형적인 자료 구조이다.
  • 스택은 데이터가 들어가고 나오는 입구가 하나이다.
  • 임시적인 정보를 저장하는 용도로 사용된다.
  • 함수의 지역변수 및 전달인자들이 스택 메모리 관리의 대표적인 예이다.
  • 푸시되는 순서대로 스택에 데이터가 차곡차곡 쌓이며 팝 할때는 푸시된 역순으로 꺼내진다.
#include<stdio.h>
#include <stdlib.h>

int* stack;
int size;
int top;

bool Push(int data)
{
	if (top < size - 1)
	{
		top++;
		stack[top] = data;
		return true;
	}
	else
	{
		return false;
	}
}

int Pop()
{
	if (top >= 0)
	{
		return stack[top--];
	}
	else
	{
		return -1;
	}
}

void main()
{
	size = 256;
	stack = (int*)malloc(size * sizeof(int));
	top = -1;

	Push(7);
	Push(0);
	Push(6);
	Push(2);
	
	printf("%d\n", Pop());
	printf("%d\n", Pop());
	printf("%d\n", Pop());
	printf("%d\n", Pop());

	free(stack);
}

출력결과
2
6
0
7

profile
알고 쓰자!

0개의 댓글