반응형
Stack
- 쌓다 라는 의미.
- 목록 혹은 리스트에서 접근이 한 쪽에서만 가능한 구조.
- LIFO 원리.
▶ stack 함수
- push : 데이터 최상단에 데이터 추가.
- peak : 최상단의 데이터를 확인.
- pop : 최상단의 데이터를 추출.
▶ 직접 구현
▷ Stack 클래스 생성
class Stack(list) :
# push 정의
push = list.append
# peek 정의
def peek(self):
return self[-1]
#pop은 list의 내장함수로 이미 존재
▷ Stack에 데이터 추가
s = Stack()
s.push(1)
s.push(5)
s.push(10)
print('my stack is : ', s)
# my stack is : [1, 5, 10]
▷ Stack에 데이터 추출
print("popped value is : ", s.pop())
# popped value is : 10
▷ stack에 가장 최상단 데이터 확인.
print('peeked value is : ', s.peek())
# peeked value is : 5
▶ Python List로 구현
▷ 데이터 추가
s = []
s.append(1)
s.append(5)
s.append(10)
print("my stack is : ", s)
# my stack is : [1, 5, 10]
▷ 최상단 데이터 추출
print("popped value is : ", s.pop())
# popped value is : 10
▷ 최상단 데이터 확인
print('peeked value is : ', s[-1])
# peeked value is : 5
▶ 스택의 활용
Queue
- 일이 처리되기를 기다리는 리스트 라는 의미
- 리스트에서 접근이 양쪽에서 가능한 구조
- FIFO 구조
▶ Queue 함수
- put : 최상단에 데이터를 추가.
- peak : 최하단 데이터를 확인.
- get : 최하단의 데이터를 추출.
▶ 구조
▶ 직접구현
▷ Queue 클래스 생성.
#Queue
class Queue(list) :
# 데이터 추가
put = list.append
# 데이터 확인
def peek(self) :
return self[0]
# 데이터 추출
def get(self) :
return self.pop(0)
▷ Queue에 데이터 추가.
q = Queue()
q.put(1)
q.put(5)
q.put(10)
print("my queue is: ",q)
# my queue is: [1, 5, 10]
▷ Queue에 데이터 추출.
print("removed value is : ", q.get())
# removed value is : 1
▷ Queue에 최하단 데이터 확인.
print("peeked value is :", q.peek())
# peeked value is : 5
▶ Python에 구현된 class import
from queue import Queue
▶ Python의 List를 큐로 활용
# 리스트 생성
q = []
# 데이터 추가
q.append(1)
q.append(10)
q.append(100)
# 데이터 추출
q.pop(0)
# 데이터 확인
q[0]
▶ Queue의 활용
반응형
'Python' 카테고리의 다른 글
[Python] 완전탐색 & 이분탐색 (0) | 2022.10.10 |
---|---|
[Python] Coding Test (크레인 인형뽑기 게임) (1) | 2022.10.08 |
[Python] Pivot Table (0) | 2022.10.06 |
[Python] 그룹연산 (0) | 2022.10.06 |
[Python] 데이터 프레임 연결 (0) | 2022.10.06 |