구현방법
큐를 입력할 때에는 하나의 스택의 push()를 통하여 데이터를 넣고,
큐를 추출할 때에는 다른 스택의 pop()를 통하여 선입선출을 만족시키는 방법
Enqueue
- 첫번째 스택 stack1에 push를 하여 데이터 저장
Dequeue
- 두번째 스택 stack2 이용
a. stack2가 비어있다면 stack1이 비어질 때까지 pop()하여 모든 데이터를 옮겨넣음. 이 결과로 stack1에서 가장 먼저 있었던 데이터는 stack2의 top에 위치하게 됨
b. stack2.pop()을 하면 가장 먼저 있었던 데이터가 가장 먼저 추출됨(FIFO)
코드 작성
class Queue(object):
def __init__(self):
self.instack=[]
self.outstack=[]
def enqueue(self,element):
self.instack.append(element)
def dequeue(self):
if not self.outstack:
while self.instack:
self.outstack.append(self.instack.pop())
return self.outstack.pop()
'CS 공부 > 알고리즘' 카테고리의 다른 글
큐(Queue) 두 개로 스택(Stack) 구현하기 (0) | 2023.08.08 |
---|---|
동적 계획법 (Dynamic Programming) (0) | 2022.08.28 |
계수 정렬(Counting Sort) (0) | 2022.08.21 |
해시 테이블 (Hash Table) (0) | 2022.08.20 |
기수 정렬 (Radix Sort) (0) | 2022.08.13 |
댓글