8.16.0.4
queue
(require queue) | package: queue |
A queue structure with amortized O(n) add and remove.
1 Synopsis
> (require queue)
> (let* ([q (queue-add* (make-queue) 'a 'b 'c)] ; make empty queue, add many items [q (queue-add q 'a)]) ; add only one item. is alias for (queue-add* q 'a) (displayln (~a "q is queue?: " (queue? q))) (displayln (~a "number of items in queue: " (queue-count q))) (displayln (~a "queue is empty?: " (queue-empty? q))) (define-values (item new-q) (queue-remove q)) (displayln (~a "originally added 'a as first item, upon remove got: " item)) (displayln (~a "'b is member of queue?: " (queue-member? q 'b))) (displayln (~a "queue ID (useful for debugging): " (queue.id q))))
q is queue?: #t
number of items in queue: 4
queue is empty?: #f
originally added 'a as first item, upon remove got: a
'b is member of queue?: #t
queue ID (useful for debugging): queue-10448