스택

Section 1. 스택

후입선출(LIFO, Last In First Out, 나중에 들어온 것이 먼저 나감) 자료구조.

항목이 스택의 맨 위에서 추출되기 때문에, 다음에 제거되는 항목은 항상 최근에 추가된 것이다.

예시

1.1. 배열로 스택 구현하기

배열로 스택을 구현할 때는 배열을 사용해 스택에 저장될 값을 유지하고 스택의 맨 위(top)에 해당하는 인덱스를 추적하는 변수를 추가로 사용한다.

Stack {
	Integer: array_size
	Integer: top
	Array of values: array
}

Push(Stack:s, Type: value):
	IF s.top == s.array_size - 1:
		배열 크기를 증가시킨다
	s.top = s.top + 1
	s.array[s.top] = value

Pop(Stack: s):
	Type: value = null
	IF s.top > -1:
		value = s.array[s.top]
		s.top = s.top - 1
	return value