반응형
개념
1. 스택이란?
- 후입선출(LIFO:Last-In-First-Out)의 자료구조이다
쉽게 생각해서 우리가 흔히 뷔페에서 접시를 꺼내쓰는것과 같다고 볼수있다
새로 추가된 그릇은 기존에 있던 접시 위에 쌓게되고 새로운 접시를 가장 상단에서 꺼내가는것과 같다고 볼수있다
허나 여기서 중요한점은 예시와 달리 자료구조-스택은 절대적으로 밑이나 중간에서 꺼낼수 없다
2. 주요 ADT(추상자료형)
- push(e) : element를 스택상단에 추가한다
- pop() : 스택상단의 요소를 꺼내서 반환한다
- isEmpty() : 스택이 비었는지 확인한다
이외에도 여러가지 명령어들이 있을수 있다
3. 스택의 사용용도
- 스택은 입력의 순서 반대로 이루어져야 할때 사용한다
웹페이지나 수식 등 뒤로가기의 동작이 스택으로 구현되었다고 할수있다
파이썬을 이용한 구현
이러한 형식을 파이썬을 활용해 구현할 것이다
class Stack:
def __init__(self):
self.stack = []
def isEmpty(self): return len(self.stack) == 0
def size(self): print(len(self.stack))
def clear(self): self.stack= []
def push(self, e): self.stack.append(e)
def pop(self):
if not self.isEmpty():
self.stack.pop(-1)
굳이 이러한 형태를 만들어서 써야한다는건 아니지만 이러한 LIFO형태의 구조를 스택의 형태라고 이해하고있으면
알고리즘을 풀이하는데 있어 더욱 편리할 것이다.
반응형