Queue/Definition: Difference between revisions

Content added Content deleted
m (→‎{{header|Quackery}}: fixed comment)
Line 5,352: Line 5,352:


=={{header|Vlang}}==
=={{header|Vlang}}==
Updated to Vlang version 0.2.2
<lang vlang>const (
<lang go>const max_depth = 256
MaxDepth = 256
)


struct Queue {
struct Queue {
mut:
mut:
data []f32=[f32(0)].repeat(MaxDepth)
data []f32 = [f32(0)].repeat(max_depth)
depth int=0
depth int
head int=0
head int
}
}


fn (q mut Queue) enqueue(v f32) {
fn (mut queue Queue) enqueue(value f32) {
if q.depth >= MaxDepth || q.depth < q.head {
if queue.depth >= max_depth || queue.depth < queue.head {
return
return
}
}
println('Enqueue: ${v : 3.2f}')
println('Enqueue: ${value:3.2f}')
q.data[q.depth] = v
queue.data[queue.depth] = value
q.depth++
queue.depth++
}
}


fn (q mut Queue) dequeue() ?f32 {
fn (mut queue Queue) dequeue() ?f32 {
if q.depth > 0 && q.head < q.depth {
if queue.depth > 0 && queue.head < queue.depth {
result := q.data[q.head]
result := queue.data[queue.head]
q.head++
queue.head++
println('Dequeue: top of Queue was ${result :3.2f}')
println('Dequeue: top of Queue was ${result:3.2f}')
return result
return result
}
}
Line 5,382: Line 5,381:
}
}


fn (q Queue) peek() ?f32 {
fn (queue Queue) peek() ?f32 {
if q.depth > 0 && q.head < q.depth {
if queue.depth > 0 && queue.head < queue.depth {
result := q.data[q.head]
result := queue.data[queue.head]
println('Peek: top of Queue is ${result :3.2f}')
println('Peek: top of Queue is ${result:3.2f}')
return result
return result
}
}
Line 5,391: Line 5,390:
}
}


fn (q Queue) empty() bool {
fn (queue Queue) empty() bool {
return q.depth == 0
return queue.depth == 0
}
}


Line 5,401: Line 5,400:
queue.enqueue(4.2)
queue.enqueue(4.2)
println('Queue is empty? ' + if queue.empty() { 'Yes' } else { 'No' })
println('Queue is empty? ' + if queue.empty() { 'Yes' } else { 'No' })
queue.peek() or {
queue.peek() or { return }
queue.dequeue() or { return }
return
queue.dequeue() or { return }
}
queue.dequeue() or {
return
}
queue.dequeue() or {
return
}
queue.enqueue(1.2)
queue.enqueue(1.2)
}
}

</lang>
</lang>
{{out}}
{{out}}