queue
Generated by tinox doc
tinox.core.queue, bundled with the compiler and also available as a standalone tinox-central package.
Circular buffer
import tinox.core.queue
class Main
{
fnc main() -> Int32
{
const buf: CircularBuffer<Int64> = CircularBuffer<Int64>::new(3)
CircularBuffer::push(buf, 1)
println("empty? " + CircularBuffer::isEmpty(buf).toString())
println("popped: " + CircularBuffer::pop(buf).toString())
return 0
}
}
Priority queue
import tinox.core.queue
class Main
{
fnc main() -> Int32
{
const pq: PriorityQueue<String> = PriorityQueue<String>::new()
PriorityQueue::enqueue(pq, "urgent", 1)
println("next: " + PriorityQueue::peek(pq))
return 0
}
}
class CircularBuffer<T>
Fields
data | List<T> | |
size | Int64 | |
head | Int64 | |
tail | Int64 | |
count | Int64 |
Methods
fn new(size: Int64) → CircularBuffer<T>
fn push(buf: CircularBuffer<T>, item: T) → Bool
@Throwsfn pop(buf: CircularBuffer<T>) → T
fn isFull(buf: CircularBuffer<T>) → Bool
fn isEmpty(buf: CircularBuffer<T>) → Bool
@Errorclass EmptyQueueError
* Pop/peek on an empty buffer or priority queue.
Fields
message | String |
class PriorityItem<T>
Fields
item | T | |
priority | Int64 |
class PriorityQueue<T>
Fields
items | List<PriorityItem<T>> |
Methods
fn new() → PriorityQueue<T>
fn enqueue(q: PriorityQueue<T>, item: T, priority: Int64) → Nothing
@Throwsfn dequeue(q: PriorityQueue<T>) → T
@Throwsfn peek(q: PriorityQueue<T>) → T
fn sort(q: PriorityQueue<T>) → Nothing
fn isEmpty(q: PriorityQueue<T>) → Bool
fn size(q: PriorityQueue<T>) → Int64