AdventOfCode2021/shared/Queue.go
Luke Else 801d7f9a78 day 21b incomplete
tried doing it, very close, I believe I have missed a very simple step or some edge case is not being run.

Value is currently way below what is expected So I either think one of the data structures is behaving badly, or I have missed a key point
2021-12-22 01:02:12 +00:00

30 lines
349 B
Go

package shared
type Queue struct {
Head *Node
Tail *Node
}
func (q *Queue) Pop() (node *Node) {
node = nil
if q.Head != nil {
node = q.Head
q.Head = q.Head.Next
if q.Head == nil {
q.Tail = nil
}
}
return
}
func (q *Queue) Add(node *Node) {
if q.Tail != nil {
q.Tail.Next = node
} else {
q.Head = node
}
q.Tail = node
}