queue
1 Synopsis
8.12

queue🔗ℹ

David K. Storrs

 (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-18821