티스토리 뷰
큐(Queue)- Priority
- 우선순이가 높은 데이터를 먼저 꺼내는 구조
→ 우선순위 : 0,1,2,...,n 순으로 0이 가장 우선순위가 높다.
→ LIFO & FILO(Last-In, First-Out & First-In, Last-Out)
- 용어
→ Enqueue : 큐에 데이터를 넣는 기능
→ Dequeue : 큐에서 데이터를 꺼내는 기능
Enqueue :
큐에 데이터가 들어갈 때

Dequeue :
큐에서 데이터가 나갈 때

Python 라이브러리
import queue
# queue 생성
priority_queue = queue.PriorityQueue()
→ put()을 사용하여 생성된 Queue에 데이터 넣기
# 생성된 queue에 데이터 입력
priority_queue.put((4, 'r'))
priority_queue.put((1, '7'))
priority_queue.put((6, 'j'))
priority_queue.put((3, 'p'))
priority_queue.put((0, 'F'))
priority_queue.put((5, 'o'))
priority_queue.put((2, ' '))
priority_queue.put((8, 'c'))
priority_queue.put((7, 'e'))
priority_queue.put((9, 't'))
→ qsize()를 사용하여 생성된 Queue안의 데이터 수 확인
# qsize() 를 사용하여 queue안의 데이터 수 확인
priority_queue.qsize()
10
→ get()를 사용하여 생성된 Queue안의 데이터 꺼내기
# queue에 입력된 데이터 출력
priority_queue.get()
(0, 'F')
→ get()를 사용하여 생성된 Queue안의 데이터 꺼내기
# queue에 입력된 데이터 출력
priority_queue.get()
(1, '7')
→ get()를 사용하여 생성된 Queue안의 데이터 꺼내기
# queue에 입력된 데이터 출력
priority_queue.get()
(2, ' ')
→ qsize()를 사용하여 생성된 Queue안의 데이터 수 확인
# qsize() 를 사용하여 queue안의 데이터 수 확인
priority_queue.qsize()
7
→ get()를 사용하여 생성된 Queue안의 데이터 꺼내기
# queue에 입력된 데이터 출력
priority_queue.get()
(3, 'p')
생략
→ get()를 사용하여 생성된 Queue안의 데이터 꺼내기
# queue에 입력된 데이터 출력
priority_queue.get()
(9, 't')
→ qsize()를 사용하여 생성된 Queue안의 데이터 수 확인
# qsize() 를 사용하여 queue안의 데이터 수 확인
priority_queue.qsize()
0
Python 구현
class queue_Priority:
def __init__(self):
"""
--Queue를 리스트로 구현--
비어있는 리스트 생성
"""
self.list_ = []
def enqueue(self, data):
"""
--Queue에 data를 넣는 기능--
data : (int, 'Value') 우선순위 숫자 및 넣을 값 입력
Ex. (0, 'test')
(1, 'Test')
"""
self.list_.append(data)
def dequeue(self):
"""
--Queue에 data를 꺼내는 기능--
우선순위가 높은 값 바인딩 및 리스트에서 삭제
"""
self.list_.sort(key=lambda x:x[0])
self.get = self.list_[0]
del self.list_[0]
return self.get
def qsize(self):
"""
--Queue data 갯수 출력--
리스트안에 들어있는 요소 값 출력
"""
return len(self.list_)
# queue 생성
data = queue_Priority()
→ put()을 사용하여 생성된 Queue에 데이터 넣기
# 생성된 queue에 데이터 입력
data.enqueue((4, 'r'))
data.enqueue((1, '7'))
data.enqueue((6, 'j'))
data.enqueue((3, 'p'))
data.enqueue((0, 'F'))
data.enqueue((5, 'o'))
data.enqueue((2, ' '))
data.enqueue((8, 'c'))
data.enqueue((7, 'e'))
data.enqueue((9, 't'))
→ qsize()를 사용하여 생성된 Queue안의 데이터 수 확인
# qsize() 를 사용하여 queue안의 데이터 수 확인
data.qsize()
10
→ get()를 사용하여 생성된 Queue안의 데이터 꺼내기
# queue에 입력된 데이터 꺼내기
data.dequeue()
(0, 'F')
→ get()를 사용하여 생성된 Queue안의 데이터 꺼내기
# queue에 입력된 데이터 꺼내기
data.dequeue()
(1, '7')
→ get()를 사용하여 생성된 Queue안의 데이터 꺼내기
# queue에 입력된 데이터 꺼내기
data.dequeue()
(2, ' ')
→ qsize()를 사용하여 생성된 Queue안의 데이터 수 확인
# qsize() 를 사용하여 queue안의 데이터 수 확인
data.qsize()
7
→ get()를 사용하여 생성된 Queue안의 데이터 꺼내기
# queue에 입력된 데이터 꺼내기
data.dequeue()
(3, 'p')
생략
→ get()를 사용하여 생성된 Queue안의 데이터 꺼내기
# queue에 입력된 데이터 꺼내기
data.dequeue()
(9, 't')
→ qsize()를 사용하여 생성된 Queue안의 데이터 수 확인
# qsize() 를 사용하여 queue안의 데이터 수 확인
data.qsize()
0'Python > 알고리즘_with Python' 카테고리의 다른 글
| [자료구조] : 링크드 리스트(Linked List) - 단순연결리스트(Singly linked list) (0) | 2022.06.15 |
|---|---|
| [자료구조] : 스택(Stack) & 재귀함수(recursive function) 동작방법 (0) | 2022.06.06 |
| [자료구조] : 큐(Queue) - 후입선출, LIFO(Last-In-First-Out) (0) | 2022.06.05 |
| [자료구조] : 큐(Queue) - 선입선출, FIFO(First-In-First-Out) (0) | 2022.06.05 |
| [자료구조] : 배열(Array) (0) | 2022.05.25 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 재귀함수 설명
- 덮어쓰기
- asd ad
- 파이썬 변수
- conda
- 이중 프린트
- recursive function
- matplotlib
- list comprehension
- sep=
- _meaning
- 변수 덮어쓰기
- 백준
- arguments
- 파이썬
- anaconda
- sad asd
- 이스케이프 코드
- underscore
- 재귀?
- recursive
- print()
- Python
- 콘다
- 재귀함수 이해
- sdsad
- _의미
- 연산속도
- parameters
- d asd asd
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | 7 |
| 8 | 9 | 10 | 11 | 12 | 13 | 14 |
| 15 | 16 | 17 | 18 | 19 | 20 | 21 |
| 22 | 23 | 24 | 25 | 26 | 27 | 28 |
| 29 | 30 | 31 |
글 보관함