python
[자료구조] 파이썬 스택(stack) 총정리
반응형
1. 스택이란?
: 가장 나중에 넣은 데이터를 가장 먼저 빼낼 수 있는 데이터 구조로 Last In First Out(LIFO) 방식이다.
(혹은 FILO : First In Last Out)
파이썬에서는 list [] 로 이미 구현되어있다.
2. 사용법(내장함수 이용)
a_list.append(1) : 괄호 안의 요소를 리스트 맨 뒤에 넣음
a_list = [1,2,3]
a_list.append(1)
=> [1,2,3,1]
a_list.pop() : 리스트의 맨 뒤에 요소를 꺼내고 리스트에서 삭제함
a_list = [1,2,3]
a_list.pop()
=> [1,2]
print(a_list.pop())
출력: 2
a_list : [1]
3. 클래스를 이용한 스택 구현
## Stack Class
class stack:
def __init__(self): # 스택 객체 생성
self.items = []
def push(self, item): # 스택 요소 추가 push(.append())
self.items.append(item)
def pop(self): # 스택 맨 뒤 요소 삭제하고 리턴 pop()
return self.items.pop()
def peek(self): # 스택 맨 뒤 요소 리턴
return self.items[-1]
def isEmpty(self): # 스택이 비었는지 확인(비었으면 True 리턴)
return not self.items
stk = stack() # stack 객체 생성
print(stk) # stack object 생성 확인
print(stk.isEmpty()) # 처음에는 아무것도 들어있지 않으므로 True 출력
stk.push(7) # stk 에 7 넣음 : [7]
stk.push(8) # stk 에 8 넣음 : [7,8]
stk.push(9) # stk 에 9 넣음 : [7,8,9]
print(stk.items) #= > [7, 8, 9]
print(stk.pop()) # stk 맨 마지막 값을 꺼내온다. 9를 꺼냈으니 출력 : 9
print(stk.items) # [7, 8] 꺼내지고 남은 값들
print(stk.peek()) # stk 맨 마지막 값을 꺼내지 않고 출력만한다 출력 : 8
print(stk.items) # [7, 8] 아무 값도 사라지지 않은걸 알 수 있다
print(stk.pop()) # stk 마지막 값 8 꺼내지면서 출력 : 8
print(stk.pop()) # stk 마지막 값 7 꺼내지면서 출력 : 7
print(stk.isEmpty()) # 객체에 아무것도 들어있지 않으므로 True 출력
print(stk.items) # 비어 있으므로 [] 출력
** 댓글을 보고 예시문 내용 수정 하였습니다. 댓글 감사합니다😍
반응형
'python' 카테고리의 다른 글
[자료구조] BFS, DFS 총정리 (0) | 2021.06.21 |
---|---|
파이썬 set() 집합 함수 총정리 (0) | 2021.06.21 |
파이썬 collections 모듈 Counter 사용법 (0) | 2021.06.20 |
[자료구조] 파이썬 큐(Queue), deque 사용법 총정리 (0) | 2021.06.19 |
람다(lambda) 총 정리, key sort, key 정렬 (0) | 2021.05.14 |
댓글