action * add(x) or enqueue(x) or put(x) or insert() * remove() or dequeue() or get() or delete() * is_empty() - check emptiness 위치? (Weiss C) * front - start of the list - dequeue/delete가 이루어지는 위치. 꺼내진 것은 returned. * rear - end of the list - enqueue/insert가 이루어지는 위치. 속성? 암튼 내부변수로 * size or get_size() * maximum size? (bound) * front * rear (이 둘은 index. - 혹은 pointer?) 분류 FIFO (first-in-first-out) LIFO (last-in-first-out) LIFO queue를 [[스택,stack]]이라고 함 Sub?: [[데크,deque]] [[우선순위큐,priority_queue]] bounded_queue https://xlinux.nist.gov/dads/HTML/boundedqueue.html [[circular_queue]] - w [[버퍼,buffer]]로 많이 쓰이는? [[queuing_theory]] = [[queueing_theory]] 작성중 [[메시지큐,message_queue]] - curr at [[메시지,message]] job_queue printer spool (?) ... Google:printer+spool etc = Weiss C chap3.4 = insertion이 한 쪽에서만, 그리고 deletion이 그 반대 쪽에서만 이루어지는 [[리스트,list]]의 일종. [[배열,array]] 구현: enqueue(x) : size와 rear를 증가, QUEUE![rear]에 x를 대입. dequeue() : return value는 QUEUE![front]이며, size 감소, 그리고 나서 front 증가. [[circular_array]] 구현: front와 rear가 끝(end)에 도달하면 시작(beginning)으로 wrapped around. size를 쓰지 않고 front/rear만으로 구현하는 방법도 있음. [[에러,error]] / [[예외,exception]] 상황: overflow / full = tmp = 표현들(thesaurus?) * enqueue : insert, push, * dequeue : extract, pop, ---- Twins: https://foldoc.org/queue https://xlinux.nist.gov/dads/HTML/queue.html https://mathworld.wolfram.com/Queue.html https://esolangs.org/wiki/Queue https://encyclopediaofmath.org/wiki/Queue tmp twins: (del ok) https://everything2.com/title/queue https://everything2.com/title/FIFO Up: [[자료구조,data_structure]] [[리스트,list]]