Ответ
Да, работал. Связный список — это структура данных, состоящая из узлов, где каждый узел содержит данные и ссылку на следующий узел. В Go можно реализовать так:
type Node struct {
data int
next *Node
}
type LinkedList struct {
head *Node
}
func (l *LinkedList) Append(data int) {
newNode := &Node{data: data}
if l.head == nil {
l.head = newNode
return
}
current := l.head
for current.next != nil {
current = current.next
}
current.next = newNode
}
Основные операции:
- Вставка/удаление: O(1) для головы, O(n) для других позиций
- Поиск: O(n)
- Не требует непрерывной памяти, но больше накладных расходов на хранение ссылок
Используется, когда важны частые вставки/удаления, а не доступ по индексу. В Go стандартной реализации нет, но есть container/list для двусвязных списков.