입력과 출력이 한 곳으로 제한되어 있다.
LIFO (Last In First Out, 후입선출) 이라고 하며 가장 나중에 들어온 것이 가장 먼저 나오는 자료구조이다.
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
아니면 스택의 최상위 위치에 값을 넣는다.