blob: 4590f3409288d9e7081efd9d8e2ccba6ac3cefa6 (
plain)
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
|
@code{(require 'queue)}
@ftindex queue
A @dfn{queue} is a list where elements can be added to both the front
@cindex queue
and rear, and removed from the front (i.e., they are what are often
called @dfn{dequeues}). A queue may also be used like a stack.
@cindex dequeues
@defun make-queue
Returns a new, empty queue.
@end defun
@defun queue? obj
Returns @code{#t} if @var{obj} is a queue.
@end defun
@defun queue-empty? q
Returns @code{#t} if the queue @var{q} is empty.
@end defun
@deffn {Procedure} queue-push! q datum
Adds @var{datum} to the front of queue @var{q}.
@end deffn
@deffn {Procedure} enqueue! q datum
Adds @var{datum} to the rear of queue @var{q}.
@end deffn
@deffn {Procedure} dequeue! q
@deffnx {Procedure} queue-pop! q
Both of these procedures remove and return the datum at the front of
the queue. @code{queue-pop!} is used to suggest that the queue is
being used like a stack.
@end deffn
All of the following functions raise an error if the queue @var{q}
is empty.
@deffn {Procedure} dequeue-all! q
Removes and returns (the list) of all contents of queue @var{q}.
@end deffn
@defun queue-front q
Returns the datum at the front of the queue @var{q}.
@end defun
@defun queue-rear q
Returns the datum at the rear of the queue @var{q}.
@end defun
|