자료구조 - Stack

deutan·2024년 6월 21일

자료구조에는 여러가지 ADT가 있으며 대표적으로
Stack, Queue, Tree, Graph 등이 있다.
오늘은 Stack에 관한 내용이다.

Stack은 LIFO의 성질을 가지는 자료구조이다.
LIFO란 Last In First Out의 약자로 가장 늦게 들어온 것이
가장 빨리 나간다는 의미이다.

이것이 어디에 사용되는지 간단하게 설명하자면,
이러한 슈도 코드가 있을 때 실행을 하면
main함수가 먼저 실행 될 것이다.
main 함수 내에서 Hello 함수를 호출하고,
Hello 함수는 또 name함수를 호출 한다.
그리고 함수의 종료는 역순으로 name->Hello->main 이 될 것이다.

이렇게 함수배열에 쌓일 것이다.
이렇게 가장 늦게 들어온 데이터가 가장 빨리 나가야 하는 상황에서 우리는 Stack을 사용하게 된다.

Stack을 추상자료형으로 정의할 때 기본적으로 5가지의 명령을 지원한다(개인의 구현에 따라 달라짐).

  • empty : 스택이 비어있는지에 대한 상태를 반환한다.
  • size : 스택의 크기를 반환한다.
  • push : 스택에 데이터를 넣는다.
  • top : 가장 위에 있는 데이터를 반환한다.
  • pop : 가장 위에 있는 데이터를 제거한다.




    아래는 c++ stack 라이브러리의 사용 예시이다.
profile
Visual Computing and Learning

1개의 댓글