Family Day update
This commit is contained in:
parent
aac6731f2c
commit
9ad63ea473
2442 changed files with 39761 additions and 8255 deletions
18
Task/Queue-Definition/Factor/queue-definition.factor
Normal file
18
Task/Queue-Definition/Factor/queue-definition.factor
Normal file
|
|
@ -0,0 +1,18 @@
|
|||
USING: accessors kernel ;
|
||||
IN: rosetta-code.queue-definition
|
||||
|
||||
TUPLE: queue head tail ;
|
||||
TUPLE: node value next ;
|
||||
|
||||
: <queue> ( -- queue ) queue new ;
|
||||
: <node> ( obj -- node ) node new swap >>value ;
|
||||
|
||||
: empty? ( queue -- ? ) head>> >boolean not ;
|
||||
|
||||
: enqueue ( obj queue -- )
|
||||
[ <node> ] dip 2dup dup empty?
|
||||
[ head<< ] [ tail>> next<< ] if tail<< ;
|
||||
|
||||
: dequeue ( queue -- obj )
|
||||
dup empty? [ "Cannot dequeue empty queue." throw ] when
|
||||
[ head>> value>> ] [ head>> next>> ] [ head<< ] tri ;
|
||||
Loading…
Add table
Add a link
Reference in a new issue