본문 바로가기

Queue3

[Queue]16. Array-base Queue 구현 목차 1. class Queue_array 2. 테스트 1. class Queue_array class Queue_array: def __init__(self): self.queue = [] # queue 저장할 리스트 self.f = 0 # queue의 front idx self.r = -1 # queue의 rear idx def size(self)-> int: # queue의 크기 반환하는 함수 return len(self.queue) def empty(self)-> bool: # queue가 비어있는지 여부를 반환하는 함수 return len(self.queue)==0 def front(self)-> object: # front의 element를 반환하는 함수 if self.empty(): # qu.. 2021. 2. 20.
[Queue]15. Queue 종류 목차 1. Array-base Queue(배열 기반 큐) 2. Array-base Circular Queue(배열 기반 원형 큐) 3. Linked list-base Queue(연결 리스트 기반 큐) 1. Array-base Queue(배열 기반 큐) Array-base Queue(배열 기반 큐)는 제목과 같이, queue를 array에 저장하는 방식을 말합니다. 위의 그림과 같이 배열의 앞부분을 front, 뒷부분을 rear로 놓고 사용합니다. 일반 배열 기반 큐의 특징은 값을 계속 enqueue할 경우, 앞의 메모리 공간이 비어있는 상태로 방치된다는 단점이 있습니다. 물론 파이썬을 기반으로 구현하면 그렇지 않지만, c++, java 등 array를 선언할 시 배열의 크기가 정해지는 경우, 이는 심각한.. 2021. 2. 20.
[Queue]14. Queue(큐) 목차 1. Queue(큐) ADT 2. Applications of Queue(활용하는 곳) 1. Queue(큐) ADT Queue(큐) ADT는 줄서기 알고리즘이라고 생각하면 됩니다. 1) 특징 - 임의의 데이터를 저장한다. - FIFO(First In First Out, 먼저 들어간 데이터가 먼저 나옴), 선입선출의 개념을 따른다 - rear(데이터가 들어오는 곳)에서 insertion이 이루어지며, front(데이터가 나가는 곳)에서 removal이 이루어짐 2) 주요 기능 - enqueue(object): element를 insert하는 함수(queue의 end에) - dequeue(): element를 remove하는 함수(queue의 front에서) 3) 부가 기능 - object front(.. 2021. 2. 20.