728x90
스택 (Stack)
게임의 그 스택이 맞다 계속 쌓이는 구조이다(Last In First Out : LIFO 리뽀)
ex) 컴퓨터 되돌리기 (Ctrl + z)
여기서 헤드를 셋팅하는건 자료구조 마다 다르니 잘 기억 하도록 하자 !
시작 !
class Stack: # 스택 생성
def __init__(self):
self.head = None
기능 !
push() : 맨 위에 데이터 넣기
def push(self, value): # 헤드 교체
new_head = Node(value) # 들어온 밸류를 새로운 헤드에 담기
new_head.next = self.head # 새로운 헤드의 다음 노드에 현재 헤드 옮기기
self.head = new_head # 새로운 헤드를 헤드노드로 지정
pop() : 맨 위의 데이터 뽑기
def pop(self): # 스택의 가장 윗부분을 삭제하고 다음노드를 헤드로 지정
if self.is_empty():
return "Stack is Empty"
delete_head = self.head #가장윗부분 헤드를 삭제할 헤드로지정
self.head = self.head.next #기존헤드 다음 헤드를 현재헤드로 지정
return delete_head.data #삭제한 헤드출력
peek() : 맨 위의 데이터 보기
def peek(self): # 스택의 가장 윗부분을 호출
if self.is_empty():
return "Stack is Empty"
return self.head.data
isEmpty() : 스택이 비었는지 여부 확인
def is_empty(self):
return self.head is None
스택은 실제 코드에선 list를 이용해서 사용한다.
stack = []
stack.append(4) # [4]
stack.append(3) # [4, 3]
stack.pop() # [4]
print(stack) #[4]
N i c e
728x90
'개-발 > Python' 카테고리의 다른 글
[Python] Hash ? (0) | 2022.11.16 |
---|---|
[Python] 자료구조[Queue 큐] (0) | 2022.11.16 |
[Python]Array or LinkedList (0) | 2022.11.11 |
[Python] 반복문 가볍게 사용하기 (lambda , map , filter) (0) | 2022.11.08 |
[Python] 파이썬 기초 문법 (2) | 2022.11.08 |