Python/알고리즘_with Python
[자료구조] : 큐(Queue) - 후입선출, LIFO(Last-In-First-Out)
샰롯
2022. 6. 5. 03:35
큐(Queue)-LIFO
- 먼저 넣은 데이터를 마지막에 꺼내는 구조
→ 후입 선출 & 선입 후출
→ LIFO & FILO(Last-In, First-Out & First-In, Last-Out)
- 용어
→ Enqueue : 큐에 데이터를 넣는 기능
→ Dequeue : 큐에서 데이터를 꺼내는 기능
Enqueue :
큐에 데이터가 들어갈 때
Dequeue :
큐에서 데이터가 나갈 때
Python 라이브러리
import queue
# queue 생성
lfof_queue = queue.LifoQueue()
→ put()을 사용하여 생성된 Queue에 데이터 넣기
# 생성된 queue에 데이터 입력
lfof_queue.put('F')
lfof_queue.put('7')
lfof_queue.put(' ')
lfof_queue.put('p')
lfof_queue.put('r')
lfof_queue.put('o')
lfof_queue.put('j')
lfof_queue.put('e')
lfof_queue.put('c')
lfof_queue.put('t')
→ qsize()를 사용하여 생성된 Queue안의 데이터 수 확인
# qsize() 를 사용하여 queue안의 데이터 수 확인
lfof_queue.qsize()
10
→ get()를 사용하여 생성된 Queue안의 데이터 꺼내기
# queue에 입력된 데이터 출력
lfof_queue.get()
't'
→ get()를 사용하여 생성된 Queue안의 데이터 꺼내기
# queue에 입력된 데이터 출력
lfof_queue.get()
'c'
→ get()를 사용하여 생성된 Queue안의 데이터 꺼내기
# queue에 입력된 데이터 출력
lfof_queue.get()
'e'
→ qsize()를 사용하여 생성된 Queue안의 데이터 수 확인
# qsize() 를 사용하여 queue안의 데이터 수 확인
lfof_queue.qsize()
7
→ get()를 사용하여 생성된 Queue안의 데이터 꺼내기
# queue에 입력된 데이터 출력
lfof_queue.get()
'j'
생략
→ get()를 사용하여 생성된 Queue안의 데이터 꺼내기
# queue에 입력된 데이터 꺼내기
ifof_queue.get()
'F'
→ qsize()를 사용하여 생성된 Queue안의 데이터 수 확인
# qsize() 를 사용하여 queue안의 데이터 수 확인
lfof_queue.qsize()
0
Python 구현
→ queue_LIFO클래스 선언
class queue_LIFO:
def __init__(self):
"""
--Queue를 리스트로 구현--
비어있는 리스트 생성
"""
self.list_ = []
def enqueue(self, data):
"""
--Queue에 data를 넣는 기능--
data : 넣을 값 입력
"""
self.list_.append(data)
def dequeue(self):
"""
--Queue에 data를 꺼내는 기능--
마지막에 들어온값 바인딩 및 리스트에서 삭제
"""
get = self.list_[-1]
del self.list_[-1]
return get
def qsize(self):
"""
--Queue data 갯수 출력--
리스트안에 들어있는 요소 값 출력
"""
return len(self.list_)
# queue 생성
data = queue_LIFO()
→ engueue()를 사용하여 생성된 Queue에 데이터 넣기
# 생성된 queue에 데이터 넣기
data.enqueue('F')
data.enqueue('7')
data.enqueue(' ')
data.enqueue('p')
data.enqueue('r')
data.enqueue('o')
data.enqueue('j')
data.enqueue('e')
data.enqueue('c')
data.enqueue('t')
→ qsize()를 사용하여 생성된 Queue안의 데이터 수 확인
# qsize() 를 사용하여 queue안의 데이터 수 확인
data.qsize()
10
→ get()를 사용하여 생성된 Queue안의 데이터 꺼내기
# queue에 입력된 데이터 꺼내기
data.dequeue()
't'
→ get()를 사용하여 생성된 Queue안의 데이터 꺼내기
# queue에 입력된 데이터 꺼내기
data.dequeue()
'c'
→ get()를 사용하여 생성된 Queue안의 데이터 꺼내기
# queue에 입력된 데이터 꺼내기
data.dequeue()
'e'
→ qsize()를 사용하여 Queue안에 남은 데이터 수 확인
# qsize() 를 사용하여 queue안의 데이터 수 확인
data.qsize()
7
→ get()를 사용하여 생성된 Queue안의 데이터 꺼내기
# queue에 입력된 데이터 꺼내기
data.dequeue()
'j'
생략
→ get()를 사용하여 생성된 Queue안의 데이터 꺼내기
# queue에 입력된 데이터 꺼내기
data.dequeue()
'F'
→ qsize()를 사용하여 Queue안에 남은 데이터 수 확인
# qsize() 를 사용하여 queue안의 데이터 수 확인
data.qsize()
0