Notice
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- ICQA
- Dynamic Programming
- Windows Server
- 머신러닝
- dns
- 서브넷마스크
- Machine learning
- 실기
- 자격증
- deep learning
- Protocol
- IPV4
- 네트워크 자격증
- 기본 정렬
- Algorithm
- 자료구조
- 파이썬
- 알고리즘
- Python
- 패스트캠퍼스
- 네트워크
- 딥러닝
- Django
- 네트워크 관리사
- 밑바닥부터 시작하는 딥러닝
- FTP
- 코딩테스트
- 프로토콜
- 네트워크 관리사 2급
- network
Archives
- Today
- Total
쳉지로그
[자료구조 이론] 큐(Queue) 본문
- 줄을 서는 행위와 유사
- 가장 먼저 넣은 데이터를 가장 먼저 꺼낼 수 있는 구조
- 예)음식점에서 가장 먼저 줄을 선 사람이 제일 먼저 음식점에 입장
- FIFO(First-In, First-Out) 또는 LILO(Last-In, Last-Out) 방식으로 스택과 꺼내는 순서가 반대
(참고)
- 멀티 태스킹을 위한 프로세스 스케쥴링 방식을 구현하기 위해 많이 사용됨
- Enqueue: 큐에 데이터를 넣는 기능
- Dequeue: 큐에서 데이터를 꺼내는 기능
# Queue()로 큐 만들기
import queue
# FIFO Queue (일반적인 큐)
data_queue = queue.Queue()
data_queue.put('hello') # enqueue
data_queue.put(2)
data_queue.qsize() # size of queue => 2
data_queue.get() # dequeue => 'hello'
# LIFO Queue
data_queue_2 = queue.LifoQueue()
data_queue_2.put('world') # enqueue
data_queue_2.put(1)
data_queue_2.qsize() # size of queue => 2
data_queue_2.get() # dequeue => 1
# Priority Queue
### 우선순위가 높은 것 먼저 추출
### 데이터가 튜플 형태로 들어감: (priority, data)
### 우선순위가 높을수록 숫자가 낮다.
data_queue_3 = queue.PriorityQueue()
data_queue_3.put((10, "hello"))
data_queue_3.put((5, 1))
data_queue_3.put((15, "world"))
data_queue_3.qsize() # 3
data_queue_3.get() # (5, 1)
data_queue_3.get() # (10, "hello")
# 리스트 변수로 큐 만들기
queue_list = list()
def enqueue(data):
queue_list.append(data)
def dequeue():
data = queue_list[0]
del queue_list[0]
return data
for i in range(10):
enqueue(i)
len(queue_list) # 10
queue_list # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
dequeue() # 0
'코딩테스트 > 자료구조 이론' 카테고리의 다른 글
[자료구조 이론] 시간 복잡도 (0) | 2021.05.10 |
---|---|
[자료구조 이론] 더블 링크드 리스트(Doubly Linked List) (0) | 2021.05.09 |
[자료구조 이론] 링크드 리스트(Linked List) (0) | 2021.04.16 |
[자료구조 이론] 스택(Stack) (0) | 2021.04.14 |
[자료구조 이론] 배열(Array) (0) | 2021.04.14 |
Comments