본문 바로가기
컴퓨터/Python

[알고리즘] 파이썬 스택 구현

by HanJoohyun 2017. 7. 5.
반응형



안녕하세요


한주현입니다



오늘은 "파이썬으로 스택 구현하기" 를 포스팅 하려 합니다.


스택(Stack) 은 무언가 쌓거나 포개 놓는 것 으로


자료구조에서 스택은 컨테이너에 항목을 쌓는 것으로


"쌓다" 라는 의미처럼 '먼저 들어간 항목이 나중에 나오고, 나중에 들어간 항목이 먼저 나오는'


LIFO (Last In First Out) 로 불립니다.



아래 그림을 보시면 이해가 더 잘 가실겁니다.



먼저 컨테이너에 들어간 빨간 블록(1) 이 나중에 넣은 파란 블록(2) 보다 나중에 나오게 되는 것을 보실 수 있습니다.



이러한 스택 자료구조를 파이썬에서 구현하면 어떻게 될까요?



직접 해보시는 것을 우선 추천해 드립니다.


힌트) 스택 구현

1) 파이썬 리스트 자료형

2) 리스트 메소드의 append

3) 리스트 메소드의 pop




스택 구현

1
2
3
4
5
6
7
8
9
10
## Stack
 
stk = []
stk.append(1)     # 1 을 리스트에 넣음 
stk.append(2)     # 2 를 리스트에 넣음
print(stk)        # 리스트 출력 [1, 2]
print(stk.pop())  # 2 가 꺼내지면서 출력 됨
print(stk.pop())  # 1 이 꺼내지면서 출력 됨
 
 
cs




클래스를 활용한 스택 구현

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
## Stack Class
 
class stack:
    def __init__(self):
        self.items = []
    def push(self, item):
        self.items.append(item)
    def pop(self):
        return self.items.pop()
    def isEmpty(self):
        return not self.items
    
 
stk = stack()        # stack 객체 생성
print(stk)           # stack object 생성 확인
print(stk.isEmpty()) # 처음에는 아무것도 들어있지 않으므로 True 출력
stk.push(1)          # stk 에 1을 넣음
stk.push(2)          # stk 에 2를 넣음
print(stk.pop())     # stk 에 2가 꺼내지면서 출력 됨
print(stk.pop())     # stk 에 1가 꺼내지면서 출력 됨
print(stk.isEmpty()) # 객체에 아무것도 들어있지 않으므로 True 출력
 
 
cs




파이썬으로 스택을 구현해보았습니다


그럼 다음 시간에 만나요~~



반응형

'컴퓨터 > Python' 카테고리의 다른 글

[파이썬] 파이썬 에러 IndexError: list index out of range  (0) 2017.11.01
[IPython] %matplotlib inline 의 의미  (2) 2017.10.22
외부 json 파일 읽기  (0) 2017.06.26
2.3 리스트 (List)  (0) 2015.02.23
2.2 문자열 (Srtings)  (0) 2015.02.08

댓글