스택(Stack)


입력과 출력이 한 곳으로 제한되어 있다.

LIFO (Last In First Out, 후입선출) 이라고 하며 가장 나중에 들어온 것이 가장 먼저 나오는 자료구조이다.

Stack.png

함수

구현

push와 pop을 할 때 해당 위치를 알고 있어야 하므로 현재의 위치를 갖고 있는 '스택 포인터(SP)'가 필요하다. 스택 포인터는 다음 값이 들어갈 위치를 가리키고 있다. (처음 기본값은 -1)

class stack(size) :
	sp = -1
	stack_size = 0
	def __init__(self):
		self.sp = -1
		self.stack_size = size
		self.stack = [0] * size

#push 함수 구현
def push(o) {
	if len(stack) == 100 :
		return

	sp += 1
	stack[sp] = o;
}

스택 포인터가 최대 크기와 같으면 return

아니면 스택의 최상위 위치에 값을 넣는다.