2023 Day 23 Complete!
This commit is contained in:
@@ -1,10 +1,10 @@
|
||||
package aoc
|
||||
|
||||
type Queue[T comparable] struct {
|
||||
type Queue[T any] struct {
|
||||
items []T
|
||||
}
|
||||
|
||||
func NewQueue[T comparable](items []T) *Queue[T] {
|
||||
func NewQueue[T any](items []T) *Queue[T] {
|
||||
return &Queue[T]{
|
||||
items: items,
|
||||
}
|
||||
@@ -46,14 +46,18 @@ func (q *Queue[T]) Cut(at, count int) []T {
|
||||
q.items = append(q.items[:at], q.items[at+count:]...)
|
||||
return ret
|
||||
}
|
||||
func (q *Queue[T]) Delete(item T) {
|
||||
for i := range q.items {
|
||||
if q.items[i] == item {
|
||||
q.items = append(q.items[:i], q.items[i+1:]...)
|
||||
return
|
||||
}
|
||||
}
|
||||
func (q *Queue[T]) DeleteAt(idx int) {
|
||||
q.items = append(q.items[:idx], q.items[idx+1:]...)
|
||||
}
|
||||
|
||||
// func (q *Queue[T]) Delete(item T) {
|
||||
// for i := range q.items {
|
||||
// if q.items[i] == item {
|
||||
// q.items = append(q.items[:i], q.items[i+1:]...)
|
||||
// return
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
func (q *Queue[T]) Expand(at, by int) {
|
||||
q.items = append(q.items[:at], append(make([]T, by), q.items[at:]...)...)
|
||||
}
|
||||
|
Reference in New Issue
Block a user