Page 130 - Do it! 자료구조와 함께 배우는 알고리즘(C 언어, 3쇄)
P. 130
04-1 스택
스택은 데이터를 일시적으로 저장하기 위한 자료구조로, 가장 나중에 넣은 데이터를 가장 먼
저 꺼냅니다.
스택이란?
스택(stack)은 데이터를 일시적으로 저장하기 위해 사용하는 자료구조로, 데이터의 입력과 출
력 순서는 후입선출(LIFO, Last In First Out)입니다(가장 나중에 넣은 데이터를 가장 먼저 꺼냅니다).
스택에 데이터를 넣는 작업을 푸시(push)라 하고, 스택에서 데이터를 꺼내는 작업을 팝(pop)
이라고 합니다. 그림 4-1에 데이터를 스택에 푸시하고 팝하는 과정을 나타냈습니다. 테이블
에 겹겹이 쌓은 접시처럼 데이터를 넣는 작업도 꺼내는 작업도 위쪽부터 수행합니다. 이렇게
푸시, 팝을 하는 위치를 꼭대기(top)라 하고, 스택의 가장 밑바닥 부분을 바닥(bottom)이라고
합니다.
stack은 ‘마른 풀을 쌓은 더미’, ‘겹겹이 쌓음’을 뜻합니다. 그래서 푸시를 ‘쌓기’라고도 하는데, 이 책에서는 푸시라고
하겠습니다.
푸시 팝
54를 푸시 65를 푸시 83을 푸시 83을 팝 57을 푸시
꼭대기
83 57
65 65 65 65
54 54 54 54 54 바닥
[그림 4-1] 스택의 푸시와 팝
C 언어 프로그램에서 함수를 호출하고 실행할 때 프로그램 내부에서는 스택을 사용합니다.
130 C 알고리즘