A queue is a data structure providing two operations: “enqueue” and “dequeue”. An enqueue operation adds an item at the end of the queue and a dequeue operation removes an item from the start of the queue.
The queue data structure works like an actual queue such as for example a queue of people. You place items in a given order and they are removed in the same order that they are added. (FIFO: first-in first-out.)
Queues are useful in implementing several algorithms: queueing systems; breadth-first search; shortest path; load balancing; etc.
In this exercise your task is to implement a command-line queue for numbers. Here is how your program should behave:
$ ./queue
enqueue 6
enqueue 2
dequeue
6
enqueue 7
enqueue 88
dequeue
2
dequeue
7
dequeue
88
After reading the command enqueue <n>
your program should enqueue the number <n>
on the queue
and print nothing.
After reading the command dequeue
your program should dequeue the number from the queue
and print it.
Input contains several lines each with a stack operation
either enqueue <n>
or dequeue
. The numbers given
on each push operation will all be integers.
For each dequeue
operation listed on the input,
output should contain a number indicating what was dequeued.
If there are no values in the queue,
your program should print empty
.
Input will be given so that there will be no more than 40 000 numbers stored in the queue at any given moment. Input is terminated by the end-of-file (EOF).
enqueue 6
enqueue 2
dequeue
enqueue 7
enqueue 88
dequeue
dequeue
dequeue
6
2
7
88
try first: index-string repeat-list replace
try also: stack
Copyright © 2020-2024 Rudy Matela
This text is available under the CC BY-SA 4.0 license.
Originally available on cscx.org/queue