Modul:queue/dok

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 avModul: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:
Passed mut.enqueue(q) (nil) (nil)
Text Expected Actual
test02_empty_queue:
Passed mut.isEmpty(q) true true
Passed mut.length(q) 0 0
Passed mut.peekFirst(q) (nil) (nil)
Passed mut.peekSecond(q) (nil) (nil)
Passed mut.peekLast(q) (nil) (nil)
Passed mut.peek(q, 1) (nil) (nil)
Passed mut.peek(q, 0) (nil) (nil)
Passed mut.peek(q, -1) (nil) (nil)
Passed mut.dequeue(q) (nil) (nil)
Text Expected Actual
test03_one_element_added:
Passed mut.isEmpty(q) false false
Passed mut.length(q) 1 1
Passed mut.peekFirst(q) one one
Passed mut.peekSecond(q) (nil) (nil)
Passed mut.peekLast(q) one one
Passed mut.peek(q, 1) one one
Passed mut.peek(q, -1) one one
Passed mut.dequeue(q) one one
Text Expected Actual
test04_two_elements_added:
Passed mut.isEmpty(q) false false
Passed mut.length(q) 2 2
Passed mut.peekFirst(q) one one
Passed mut.peekSecond(q) two two
Passed mut.peekLast(q) two two
Passed mut.peek(q, 1) one one
Passed mut.peek(q, 2) two two
Passed mut.peek(q, -1) two two
Passed mut.peek(q, -2) one one
Text Expected Actual
test05_four_elements_added:
Passed mut.length(q) false false
Passed mut.length(q) 4 4
Passed mut.peekFirst(q) one one
Passed mut.peekSecond(q) two two
Passed mut.peekLast(q) four four
Passed mut.peek(q, 1) one one
Passed mut.peek(q, 4) four four
Passed mut.peek(q, 5) (nil) (nil)
Passed mut.peek(q, 0) (nil) (nil)
Passed mut.peek(q, -1) four four
Passed mut.peek(q, -4) one one
Passed mut.peek(q, -5) (nil) (nil)
Text Expected Actual
test06_multiple:
Passed mut.dequeue(q) (nil) (nil)
Passed mut.length(q) true true
Passed mut.length(q) 0 0
Passed mut.enqueue(q, "one") (nil) (nil)
Passed mut.enqueue(q, "two") (nil) (nil)
Passed mut.length(q) 2 2
Passed mut.dequeue(q) one one
Passed mut.length(q) 1 1
Passed mut.enqueue(q, "three") (nil) (nil)
Passed mut.enqueue(q, "four") (nil) (nil)
Passed mut.length(q) 3 3
Passed mut.dequeue(q) two two
Passed mut.peekFirst(q) three three
Passed mut.peekSecond(q) four four
Passed mut.peekLast(q) four four
Passed mut.length(q) 2 2
Passed mut.dequeue(q) three three
Passed mut.dequeue(q) four four
Passed mut.length(q) true true
Passed mut.dequeue(q) (nil) (nil)
Passed mut.length(q) 0 0