Hej, du har kommit hit för att leta efter betydelsen av ordet
Modul:queue/dok. I DICTIOUS hittar du inte bara alla ordboksbetydelser av ordet
Modul:queue/dok, utan du får också veta mer om dess etymologi, dess egenskaper och hur man säger
Modul:queue/dok i singular och plural. Allt du behöver veta om ordet
Modul:queue/dok finns här. Definitionen av ordet
Modul:queue/dok hjälper dig att vara mer exakt och korrekt när du talar eller skriver dina texter. Genom att känna till definitionen av
Modul:queue/dok och andra ord berikar du ditt ordförråd och får tillgång till fler och bättre språkliga resurser.
Syfte
- Den här modulen innehåller en generell implementering av en Single Queue-datastruktur för moduler som har nytta av det.
Användning
local Queue = require("Modul:queue") --importerar Queue-datastrukturen
local q = Queue() --skapar en ny "instans" q
Queue.enqueue(q, "abc") --lägger till elementet "abc" i kön q
Specifikation
- Publika funktioner:
enqueue("abc")
Lägger till elemenet "abc" i kön.
dequeue()
Tar bort det första elementet från kön och returnerar det, det vill säga "Först in, först ut". Om kön är tom returneras nil
.
peek(index)
Returnerar elementet som befinner sig på position index
i kön. 1 är det första elementet. Om värdet på index
är negativt returneras elementet som befinner sig på position index
i kön räknat bakifrån. -1 är det sista elementet. Värdet på index
kan inte vara 0 eller utanför köns omfång. Då returneras nil
.
peekFirst()
Samma som peek(1)
.
peekSecond()
Samma som peek(2)
.
peekLast()
Samma som peek(-1)
.
isEmpty()
Returnerar true
om kön är tom, annars false
.
length()
Returnerar köns längd, dvs köns totala antal element.
Tester
All tests passed. (refresh)
|
Text |
Expected |
Actual
|
test01_enqueue:
|
mut.enqueue(q) |
(nil) |
(nil)
|
|
Text |
Expected |
Actual
|
test02_empty_queue:
|
mut.isEmpty(q) |
true |
true
|
|
mut.length(q) |
0 |
0
|
|
mut.peekFirst(q) |
(nil) |
(nil)
|
|
mut.peekSecond(q) |
(nil) |
(nil)
|
|
mut.peekLast(q) |
(nil) |
(nil)
|
|
mut.peek(q, 1) |
(nil) |
(nil)
|
|
mut.peek(q, 0) |
(nil) |
(nil)
|
|
mut.peek(q, -1) |
(nil) |
(nil)
|
|
mut.dequeue(q) |
(nil) |
(nil)
|
|
Text |
Expected |
Actual
|
test03_one_element_added:
|
mut.isEmpty(q) |
false |
false
|
|
mut.length(q) |
1 |
1
|
|
mut.peekFirst(q) |
one |
one
|
|
mut.peekSecond(q) |
(nil) |
(nil)
|
|
mut.peekLast(q) |
one |
one
|
|
mut.peek(q, 1) |
one |
one
|
|
mut.peek(q, -1) |
one |
one
|
|
mut.dequeue(q) |
one |
one
|
|
Text |
Expected |
Actual
|
test04_two_elements_added:
|
mut.isEmpty(q) |
false |
false
|
|
mut.length(q) |
2 |
2
|
|
mut.peekFirst(q) |
one |
one
|
|
mut.peekSecond(q) |
two |
two
|
|
mut.peekLast(q) |
two |
two
|
|
mut.peek(q, 1) |
one |
one
|
|
mut.peek(q, 2) |
two |
two
|
|
mut.peek(q, -1) |
two |
two
|
|
mut.peek(q, -2) |
one |
one
|
|
Text |
Expected |
Actual
|
test05_four_elements_added:
|
mut.length(q) |
false |
false
|
|
mut.length(q) |
4 |
4
|
|
mut.peekFirst(q) |
one |
one
|
|
mut.peekSecond(q) |
two |
two
|
|
mut.peekLast(q) |
four |
four
|
|
mut.peek(q, 1) |
one |
one
|
|
mut.peek(q, 4) |
four |
four
|
|
mut.peek(q, 5) |
(nil) |
(nil)
|
|
mut.peek(q, 0) |
(nil) |
(nil)
|
|
mut.peek(q, -1) |
four |
four
|
|
mut.peek(q, -4) |
one |
one
|
|
mut.peek(q, -5) |
(nil) |
(nil)
|
|
Text |
Expected |
Actual
|
test06_multiple:
|
mut.dequeue(q) |
(nil) |
(nil)
|
|
mut.length(q) |
true |
true
|
|
mut.length(q) |
0 |
0
|
|
mut.enqueue(q, "one") |
(nil) |
(nil)
|
|
mut.enqueue(q, "two") |
(nil) |
(nil)
|
|
mut.length(q) |
2 |
2
|
|
mut.dequeue(q) |
one |
one
|
|
mut.length(q) |
1 |
1
|
|
mut.enqueue(q, "three") |
(nil) |
(nil)
|
|
mut.enqueue(q, "four") |
(nil) |
(nil)
|
|
mut.length(q) |
3 |
3
|
|
mut.dequeue(q) |
two |
two
|
|
mut.peekFirst(q) |
three |
three
|
|
mut.peekSecond(q) |
four |
four
|
|
mut.peekLast(q) |
four |
four
|
|
mut.length(q) |
2 |
2
|
|
mut.dequeue(q) |
three |
three
|
|
mut.dequeue(q) |
four |
four
|
|
mut.length(q) |
true |
true
|
|
mut.dequeue(q) |
(nil) |
(nil)
|
|
mut.length(q) |
0 |
0
|