자료구조[1]-STACK
본 포스트는 python언어로 작성되었음을 알려드립니다.
1. stack이란?
https://hazarddev.tistory.com/17?category=794281
STACK(스택)이 뭔가요?[1]
본 포스트는 c언어를 중심으로 작성되었습니다. STACK(스택)이 뭔가요? 스택.. 롤 하신분이라면 압니다. 필자 또한 롤을 즐겨했고, 요즘 롤은 참고로 전혀 몰라요. 근데 예전에 메자이 스택 아시겠�
hazarddev.tistory.com
제가 c언어를 토대로 스택자료구조를 구현하여 포스팅을 한 적이 있습니다. 스택자료구조에 대한 간단한 설명은 위 링크를 통해서 확인하실 수 있습니다. 제가 본 포스팅에서 하고자 하는 것은 파이썬을 통한 스택자료구조의 구현입니다.
스택은 차곡차곡 쌓아가는 것을 의미합니다. 그렇단 말은, 제일 먼저 들어온 데이터가 가장 아래에 위치하게 된다는 말입니다. 이것을 현실세계로 도입해봤을 때를 상상해봅시다.
소방관은 불을 끄고, 생명을 살리고, 위험에 처한 상황을 벗어나게 해주는 사실상 현실판 슈퍼맨이 아닐 수 없습니다.
"FIRST IN, LAST OUT"
스택 자료구조 또한 소방관 분들과 같습니다. 제일 먼저 들어간 데이터는 가장 나중에 나오게 되는 FILO방식으로 구현됩니다. 그렇다면
실제 파이썬 코드 상에서 어떻게 구현되는지 확인 해 보겠습니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
class Stack(object):
def __init__(self):
self.stack = [] 파이썬에서 스택 자료구조는 리스트 형태로 구현됩니다.
def isEmpty(self):
return not bool(self.stack)
def push(self,value):
self.stack.append(value)
def pop(self):
value = self.stack.pop()
if value is not None:
return value
else:
print('Stack is empty')
def size(self):
return len(self.stack)
def peek(self):
if self.stack:
return self.stack[-1]
else:
print('Stack is Empty')
def __repr__(self):
return repr(self.stack)
|
cs |
실제 코드를 동작시키기 위해서는
stack = Stack() <== 인스턴스화를 먼저해야합니다. 클래스에 대해 잘 모르시는 분들은 제 블로그에 파이썬 클래스 포스팅을 보고오시는 것을 추천드립니다.
stack.push(1)
stack.push(2)
하게 되면
차례대로 들어가서 [1,2] 라는 리스트 형태의 스택 구조로 구현되게 되는 것 입니다.
다음 포스팅에서는 큐(queue)자료구조를 구현해보겠습니다.
궁금한점 댓글 달아주시면 성심껏 답변 드리겠습니다. 감사합니다~
'Python' 카테고리의 다른 글
자료구조[3]-이진트리(python) (1) | 2020.06.03 |
---|---|
자료구조[2] - Queue(python) (0) | 2020.06.02 |
파이썬 리스트 중복제거! (0) | 2020.04.02 |
파이썬에서의 추상데이터타입![2] (0) | 2020.03.02 |
파이썬에서의 추상데이터타입![1] (0) | 2020.03.02 |
댓글