반응형
안녕하세요
한주현입니다
오늘은 "파이썬으로 스택 구현하기" 를 포스팅 하려 합니다.
스택(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 |
댓글