
Data Structure

This illustrates a data structure, a means of storing data within a program.

You may see other such structures in the Data Structures category.
 Illustration of FIFO behavior
Task

Create a queue data structure and demonstrate its operations.

(For implementations of queues, see the FIFO task.)



Operations:

   push       (aka enqueue) - add element
   pop         (aka dequeue) - pop first element
   empty     - return truth value when empty


See also

 Array
 Associative array: Creation, Iteration
 Collections
 Compound data type
 Doubly-linked list: Definition, Element definition, Element insertion, List Traversal, Element Removal
 Linked list
 Queue: Definition, Usage
 Set
 Singly-linked list: Element definition, Element insertion, List Traversal, Element Removal
 Stack


// version 1.1.2
 
import java.util.*
 
fun main(args: Array<String>) {
    val q: Queue<Int> = ArrayDeque<Int>()
    (1..5).forEach { q.add(it) }
    println(q)
    println("Size of queue = ${q.size}")
    print("Removing: ")
    (1..3).forEach { print("${q.remove()} ") }
    println("\nRemaining in queue: $q")
    println("Head element is now ${q.element()}")
    q.clear()
    println("After clearing, queue is ${if(q.isEmpty()) "empty" else "not empty"}")
    try {
        q.remove()
    }
    catch (e: NoSuchElementException) {
        println("Can't remove elements from an empty queue")
    }
}