-
7. 스택(Stack ADT) 파이썬Python/파이썬 자료구조 알고리듬 2019. 6. 2. 22:40반응형
스택(Stack ADT)
스택(stack)을 영한사전에서 찾아보면
'(보통 깔끔하게 정돈된) 무더기'라고 되어 있습니다.(차곡차곡) 물건을 쌓아 올리면 아래 것은 빼기가 어렵죠?
마지막에 쌓은, 제일 위의 것을 먼저 꺼내 쓸 수 밖에 없습니다.이를 LIFO(= last-in, first-out = 후입 선출)
또는 FILO(= first-in, last-out = 선입 후출)라고 하며,
이와 같은 형태의 자료 구조를 스택이라고 합니다.스택에 자료를 집어넣는(=쌓아주는) 것은 push,
스택에서 자료를 꺼내는 것은 pop이라고 합니다.리스트와 클래스를 이용해서 스택 추상 자료형을 만들어 보겠습니다.
class Stack: def __init__(self): self.data = [] def push(self, element): self.data.append(element) def pop(self): return self.data.pop() def length(self): return len(self.data) def show(self): print(self.data) def clear(self): self.data.clear() poo = Stack() for i in range(5): poo.push(i) poo.show() print(poo.pop()) print(poo.pop()) poo.clear() poo.show()
[0, 1, 2, 3, 4] 4 3 []
작성하고 나니 '이게 뭔 짓인가' 싶군요..
실전에서 스택을 쓴다면, 리스트를 바로 이용하면 됩니다.
push는 append, pop은 그대로 pop입니다.poo = [] for i in range(5): poo.append(i) print(poo) print(poo.pop()) print(poo.pop())
반응형