Modul:queue/dok
Hoppa till navigering
Hoppa till sök
Detta är dokumentationssidan för Modul:queue
Syfte[redigera]
- Den här modulen innehåller en generell implementering av en Single Queue-datastruktur för moduler som har nytta av det.
Användning[redigera]
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[redigera]
- 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 returnerasnil
.peek(index)
Returnerar elementet som befinner sig på positionindex
i kön. 1 är det första elementet. Om värdet påindex
är negativt returneras elementet som befinner sig på positionindex
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å returnerasnil
.peekFirst()
Samma sompeek(1)
.peekSecond()
Samma sompeek(2)
.peekLast()
Samma sompeek(-1)
.isEmpty()
Returnerartrue
om kön är tom, annarsfalse
.length()
Returnerar köns längd, dvs köns totala antal element.
Tester[redigera]
All tests passed. (refresh)
Text | Expected | Actual | |
---|---|---|---|
mut.enqueue(q) | (nil) | (nil) |
Text | Expected | Actual | |
---|---|---|---|
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 | |
---|---|---|---|
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 | |
---|---|---|---|
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 | |
---|---|---|---|
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 | |
---|---|---|---|
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 |